nginx переписать: [emerg] неизвестная переменная "0"
1.) Правило Apache:
RewriteRule ^(.*)/(.*).htm$ /inner.php?Categories=$0&Title=$1 [L,QSA]
2.) После преобразования в nginx:
rewrite ^/(.*)/(.*).htm$ /inner.php?Categories=$0&Title=$1 break;
Вопрос: Когда пользователь заходит на эту страницу http://example.com/category.htm и пытается щелкнуть внутри страниц, это означает, что он должен быть перенаправлен на http://example.com/category/innerpagetitle.htm/
Как мне добиться успеха в nginx?
2 ответа
Я предпочитаю реализовать это с помощью location
блоки.
location ~ ^/(.+)/(.+)\.htm$ {
try_files $uri $uri/ /inner.php?Categories=$1&Title=$2;
}
Я также изменился с .*
(0 совпадений или больше) .+
(1 совпадение или более), чтобы избежать возможного неопределенного поведения из сценария PHP.
В nginx переменные возвращаются начиная с $1
так что это должно работать:
rewrite ^/(.*)/(.*).htm$ /inner.php?Categories=$1&Title=$2 break;