Удаление расширений html и добавление косой черты к файлам во всех каталогах, не затрагивая внутренние URL-адреса.

Я использую приведенный ниже код для перенаправления index.html и версии URL без www на www. Он также удаляет расширения *.html из файлов. Теперь я хотел бы добавить косую черту в конце в конце файлов во всех каталогах. Ниже приведены примеры того, что я хочу получить:

  • www.mydomain.com.au/contact.html переходит на www.mydomain.com.au/contact/
  • www.mydomain.com.au/contact переходит на www.mydomain.com.au/contact/
  • www.mydomain.com.au/glass-replacement/Brisbane.html переходит на /glass-replacement/Brisbane/

и так далее...

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^.*\/index\.html\ HTTP/
RewriteRule ^(.*)index\.html$ /$1 [R=301,L]
RewriteCond %{http_host} ^mydomain.com.au$ [nc]
RewriteRule ^(.*)$ http://www.mydomain.com.au/$1 [r=301,nc,L]

RewriteCond %{THE_REQUEST} \ /(.+/)?index(\.html)?(\?.*)?\  [NC]
RewriteRule ^(.+/)?index(\.html)?$ /%1 [R=301,L]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.+)\.html$ /$1 [R=301,L]
RewriteCond %{SCRIPT_FILENAME}.html -f
RewriteRule [^/]$ %{REQUEST_URI}.html [QSA,L]

заранее спасибо за помощь


person Webnerdoz    schedule 18.03.2013    source источник
comment
Итак, вы хотите перенаправить на /foo/, если пользователь запросил только /foo?   -  person CBroe    schedule 18.03.2013
comment
@CBroe Да. Вот так.   -  person Webnerdoz    schedule 18.03.2013


Ответы (1)


Попробуй это:

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^.*\/index\.html\ HTTP/
RewriteRule ^(.*)index\.html$ /$1 [R=301,L]
RewriteCond %{http_host} ^glassnow.com.au$ [nc]
RewriteRule ^(.*)$ http://www.glassnow.com.au/$1 [r=301,nc,L]

RewriteCond %{THE_REQUEST} \ /(.+/)?index(\.html)?(\?.*)?\  [NC]
RewriteRule ^(.+/)?index(\.html)?$ /%1 [R=301,L]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.+)\.html$ /$1 [R=301,L]
RewriteCond %{SCRIPT_FILENAME}.html -f
RewriteRule [^/]$ %{REQUEST_URI}.html [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.glassnow.com.au/$1/ [R=301,L]
person moobot    schedule 02.04.2013