.htaccess мод перезаписать 301-редирект

Я хочу: все ссылки, которые не содержат имя файла (не .html, .jpg, .png, .css), перенаправляют с состоянием 301 в каталог, например: http://mysite.com/article -> http://mysite.com/article/ Но http://mysite.com/article/article-15.html не перенаправляет. Какое регулярное выражение я должен написать в .htaccess, чтобы добавить косую черту в виртуальные каталоги?

Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
1 105
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Требуются разъяснения:

Учитывая URL: http: // сервер / путь / файл

Перенаправляется ли это на: http: // сервер / путь /

Или перенаправляется на: http: // сервер / путь / файл /

Как в: хотите ли вы, чтобы перенаправления переходили на родительский путь, или вы просто хотите добавить косую черту и предположить, что каталог вне текущего пути?

Ответ принят как подходящий

Я думаю, что может сработать следующее:

RewriteEngine on   
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}// [R=301,L]

Что касается mod_rewrite, я никогда не могу быть уверен без тестирования ...

Приведенное выше RewriteRule MB не сработает на таких путях, как /a, потому что оно должно соответствовать как минимум двум символам после косой черты. Более того, он соответствует только верхним URL-адресам каталогов.

RewriteRule ^(([^/]+/)*[^/\.]+)$ http://%{HTTP_HOST}// [R=301,L]

Целью этого является уменьшение загрязнения истории / ложных негативов?

Другие вопросы по теме