我目前正在使用htaccess强制所有请求使用www。所以:
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
将example.com/page重定向到www.example.com/page。
但是,这个htaccess文件正在被example.com的几个国际版本使用。我想要的代码也可以执行以下操作:
example.de/page - > www.example.de/page 和 example.co.uk/page - > www.example.co.uk/page 等
可能有几十个版本的example.com,所以我希望每次添加新国家时都要记得编辑htaccess。
答案 0 :(得分:2)
您可以在您的子站中使用服务器变量,因此这应该可以使用
RewriteRule ^(.*)$ http://www.${HTTP_HOST}/$1 [L,R=301]
答案 1 :(得分:1)
对:认为我实际上已经破解了。 (或者至少看起来它有效):
RewriteCond %{HTTP_HOST} ^example\.(.*)$ [NC]
RewriteRule ^(.*)$ http://www.example\.%1/$1 [R=301,L]
似乎可以解决问题。
答案 2 :(得分:0)
测试当前主机名是否以www.
开头,如果缺少则添加它:
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]