0

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

  • www.mydomain.com.au/contact.html идет в www.mydomain.com.au/contact/
  • www.mydomain.com.au/контакт идет к www.mydomain.com.au/contact/
  • www.mydomain.com.au/glass-replacement/Brisbane.html идет в /стекла замена/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] 

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

+0

Так что вы хотите перенаправить на '/ Foo /', если пользователь только запрошенной '/ Foo'? – CBroe

+0

@CBroe Да. Это верно. – Webnerdoz

ответ

0

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

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]