向URL添加尾部斜杠仅适用于非ww重定向

时间:2015-04-14 07:54:19

标签: .htaccess mod-rewrite

我试图在网址上添加一个尾部斜杠。它几乎可以工作,但有一点我不明白的问题。

当我致电网站http://domain.com/test>重写到www.domain.com>尾部斜杠已添加。

当我直接致电网站http://www.domain.com/test>什么也没有添加。 对我来说重要的是https://必须重定向到https://而不是http://

这是我的配置:

############################################

启用重写

Options +FollowSymLinks
RewriteEngine on    

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_URI} !.html
RewriteCond %{REQUEST_URI} !.php
RewriteCond %{QUERY_STRING} !price

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1/ [R=301,L]

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1/ [R=301,L]   

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.php [L]

1 个答案:

答案 0 :(得分:1)

用这些简化的规则替换您的规则:

Options +FollowSymLinks
RewriteEngine on    

RewriteCond %{HTTPS}s on(s)|
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.+?)/?$ http%1://www.domain.com/$1/ [R=302,L,NE]

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.php [L]