2008-09-17 3 views
0

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

ответ

2

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

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

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

1

Разъяснение необходимо:

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

Does, которые получают перенаправлены: http://server/path/

Или это получить перенаправлены: http://server/path/file/

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

+0

Я хочу добавить только косую черту: http: // server/path/file -> http: // server/path/file / – starkeen 2008-09-17 10:05:30

0

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

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

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

Смежные вопросы