Nginx и try_flies не работают должным образом
Я пытаюсь смоделировать Multiviews, но у меня проблема с try_files. Все в порядке, но я хочу переписать все URL не удалось /index.php (но не с 404):
location ~ ^(/.+)/ {
try_files $uri $uri/ $1.php?$args @extensionless-php /index.php;
}
location @extensionless-php {
rewrite ^(.*)/ $1.php;
}
ВСЕ URL переписываются в /index.php. Если я удаляю /index.php в конце первого расположения, все в порядке, кроме неуправляемых URL-адресов (которые я хочу переписать в индекс). Любая идея? Спасибо
1 ответ
Решение
Вы можете попытаться удалить /index.php
с первого места, как вы сказали. Затем, чтобы сделать его перенаправить на /index.php
если php-файл не найден, вы можете добавить несколько строк в location
какие ручки .php
Запросы:
location ~ \.php$ {
if (!-f $request_filename) {
rewrite .* /index.php;
}
# your other directives such as fastcgi_pass 127.0.0.1:9000; etc.
}