Я надеюсь, что вы можете помочь мне в следующем вопросе.
У меня работает NGINX, и я хочу перенаправлять .html (виртуальные страницы) на index.php?view=$args без изменения URL-адреса, который отображается в адресной строке браузера (URI ЗАПРОСА)
Я пробовал это несколько раз, но каждый раз, когда я захожу на: example.com/meldung.html, NGINX меняет URL-адрес браузера на: example.com/index.php?view=Meldung, но это не то, что мне нужно.
example.com/meldung.html должен быть внутренне перенаправлен на index.php?view=$1, но не за пределами того, что видит пользователь.
слушать 80;
корень /var/www/example.com;
индекс index.html index.htm index.php;
имя_сервера example.com www.example.com
индекс index.html index.htm index.php;
журнал_доступа /var/log/nginx/example.com_access.log;
error_log /var/log/nginx/example.com.io_error.log;
установить $skip_cache 0;
# POST-запросы и URL-адреса со строкой запроса всегда должны отправляться на PHP
если ($ request_method = POST) {
установить $skip_cache 1;
}
если ($query_string != "") {
установить $skip_cache 1;
}
место расположения / {
try_files $uri $uri/ =404;
удовлетворить всех;
если (!-f $request_filename) {
переписать ^(.*)\.html$ /index.php?view=$1 последним;
}
}
расположение ~ \.php$ {
включить фрагменты/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
}
На Apache он работал правильно:
Правило перезаписи ^(.*).html$ index.php?view=$1 [L,NC]
но не на NGINX