.htaccess мод переписать 301-редирект - PullRequest
0 голосов
/ 17 сентября 2008

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

Ответы [ 3 ]

2 голосов
/ 17 сентября 2008

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

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

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

1 голос
/ 17 сентября 2008

Требуется уточнение:

Учитывая URL: http://server/path/file

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

Или он перенаправляется на: http://server/path/file/

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

0 голосов
/ 11 октября 2008

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...