Добавляйте завершающую косую черту к URL-адресам


person Karen    schedule 03.11.2009    source источник
comment
Похоже, вопрос больше относится к serverfault.com, а не к stackoverflow.com.   -  person Wouter Coekaerts    schedule 03.11.2009


Ответы (2)


Вам не нужно указывать домен, вы можете просто использовать абсолютный URL-адрес:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]

Это также делает проверку схемы URL устаревшей.

person Gumbo    schedule 03.11.2009

Это должно работать:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !example.php
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [L,R=301]
person Siddhartha Reddy    schedule 03.11.2009
comment
.* будет соответствовать обратной косой черте, вместо этого используйте [^/]* - person Oz.; 03.11.2009
comment
эээ, в дополнение к тому, что я имел в виду, например, как Гамбо использует ниже. - person Oz.; 03.11.2009
comment
@Oz, да, так было бы лучше. Я просто демонстрировал использование %{HTTP_HOST}, поэтому я пошел на минимальное изменение исходного фрагмента. - person Siddhartha Reddy; 03.11.2009