|
|
|
| День добрый.
Задача следующая:
добавлять к урлу слеш если его нет,
поискал нашел такое решение
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]
|
Но тут "внезапно" выявил проблему:
при обращении к файлу сайт.ру/test.rar - добавляется слеш
|
не могу сообразить как добавлять слеш только к тем адресам у которых нет расширения. | |
|
|
|
|
|
|
|
для: Rick
(11.05.2013 в 00:50)
| | test.rar - точно файл, не символическая ссылка? | |
|
|
|
|
|
|
|
для: cheops
(11.05.2013 в 07:55)
| | Да точно,
могут быть еще и варианты когда на *.php завершение | |
|
|
|
|
|
|
|
для: Rick
(11.05.2013 в 23:40)
| | . | |
|
|
|
|
|
|
|
для: cheops
(12.05.2013 в 09:32)
| | извиняюсь, не совсем понял ответ) | |
|
|
|
|
|
|
|
для: Rick
(13.05.2013 в 02:41)
| | Просто подумал, что речь об символических ссылках, потом перечитал ответ и понял, что ошибся. | |
|
|
|
|
|
|
|
для: Rick
(11.05.2013 в 23:40)
| | Тут, мне кажется, правильнее не "добавлять слеш только к тем адресам у которых нет расширения", а добавлять слеш только к тем адресам у которых расширение не из "списка допустимых".
Например, если у вас возможны ссылки на файлы с расширениями php, js, css, jpg, jpeg, png, gif, rar, zip, gz, 7z, то ваши правила можно изменить так:
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\.(php|js|css|jpe?g|png|gif|rar|zip|gz|7z)$
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ $1/ [L,R=301]
|
| |
|
|
|