nginx правильный редирект на /

shambler81 nginx-forum at nginx.us
Tue Sep 30 11:54:20 UTC 2014


Поскольук RweriteCond  не может проверить на 404,  до редиректа можно только
в nginx правило нужно переписать под nginx

Требуется сделать редирект на слеш но хитрый.
RewriteCond ЕСЛИ НЕ 400
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [R=301]


И того.
редирект должен сработать если
1.  страница не отдает 400 ( посколкьу иначе отдаст 301+400)
2.  если   урл НЕ заканчивается .html|php|txt и тд посколкуь слеш   после
расширения глупо.
3 если урл НЕ содержит слеш в конце ( тобишь уже не требуется)
То седлать редирект со всех  урлов  на урлы со слешем вконце.



index.html - не редиректит поскольку заканчивается расширение м
index.php/aaa/aaa/ -  не редиректит посколку слеш вконце
index.php/?=ID2333s  правило не затрагивает гет запросы
404  правило неработает посколкьу 404 в редиректе не нуждается.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,253619,253619#msg-253619



Подробная информация о списке рассылки nginx-ru