将所有URL请求重写为https://www.example.com/$1

时间:2013-11-05 09:43:14

标签: regex apache .htaccess mod-rewrite

我有两个域名,example.com和example.co.uk,它们在我的服务器上使用相同的应用程序。

我想根据用户输入的内容重写网址。我想要的唯一网址是https://www.example.comhttps://www.example.co.uk

在我的.htaccess文件中,我有以下内容:

# Turn on URL rewriting
RewriteEngine On

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

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

如果我转到http://www.example.com,则不会添加https,如果我转到http://example.com则会这样做。使ReWriteCond与www url匹配的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

有这样的2条规则:

RewriteEngine On

# add www
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI}  [L,NE,R=301]

# turn on HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}  [L,NE,R=301]

这两条规则将照顾您的两个域名。