.htaccess将旧URL重定向到新URL,http到https,非www到www?

时间:2015-03-11 16:42:02

标签: .htaccess mod-rewrite

我有一个很高的订单,用于重定向现有网站的新版本的URL。目前,我正在强制www并使用以下结构重定向所有链接:

http://www.example.com/username

使用以下.htaccess规则:

#Force www in all links
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

RewriteCond %{HTTPS_HOST} ^example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

#This rule allows for vanity URLs
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^agents/(.*) /members.php?$1 [l]
RewriteRule ^(.*) /members.php?$1 [L,QSA]

此网站的新版本将在网站范围内使用https,应重定向任何旧链接的新网址结构如下所示:

https://www.example.com/first-directory/second-directory/member

注意:第三条规则将在新网站上消失,因为漂亮的网址正由我正在使用的框架处理。

考虑使用网站范围的SSL,实现永久重定向到新网址的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

请尝试以下规则:

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=302,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /first-directory/second-directory/$1 [L,R=302]