有条件301redirect取决于服务器(本地主机vs生产)

通过练习,我为我的生产服务器部署301redirect非www – > www。 但是我的开发服务器和生产服务器之间的.htaccess重写设置有点烦人的问题。

如果我把.htaccess文件中的非www – > www 301redirect条件留下(这个文件会和网站一起部署),我的开发networking服务器会尝试将“ http:// localhost / mysite ”redirect到“ http://www.localhost / mysite “不起作用。

所以我必须根据服务器切换.htaccess重写条件,这有点麻烦。

有什么方法使用条件语句来实现像…

# Rewrite "www.domain.com -> domain.com" <IfModule mod_rewrite.c> <If !localhost> #This is not valid code RewriteCond %{HTTPS} !=on RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] <else> RewriteCond %{HTTPS} !=on RewriteCond %{HTTP_HOST} !^www\..+$ [NC] RewriteCond %{HTTP_HOST} (.+)$ [NC] RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L] </If> </IfModule> 

还是有更聪明的方法呢?

期待你的想法。 非常感谢你。 Prembo。

看起来像你的configuration打算从localhost请求中删除一个www ,如果我明白了吗? 这部分不应该是必要的,所以让我知道如果我失去了一些东西。

怎么样这样的事情:

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