如果htaccess文件中的条件执行自定义指令

时间:2014-03-27 06:00:14

标签: .htaccess conditional-statements

我有三个站点,一个站点是生产站点,一个是暂存站点,另一个站点是开发站点。

例如......

mydomain.com <--live
staging.mydomain.com <---staging
mydevdomain.com <--- dev

每个站点都有完全相同的文件,我想确保每个站点都有相同的htaccess文件(以避免必须维护单独的htaccess文件)但我想强制在现场网站上使用www - &gt; mydomain.com。

是否有一些我可以使用的htaccess条件,它具有以下特点:

if({HTTP_HOST} ==  "mydomain.com" { 

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

}

这样当有人去mydomain.com时,他们会被发送到www版本,而在其他网站上,他们会留在非www版本。

1 个答案:

答案 0 :(得分:1)

这是RewriteCond的用武之地。它用于条件。

尝试此规则

RewriteCond %{HTTP_HOST} ^mydomain.com$ [NC]
RewriteRule ^ http://www.mydomain.com%{REQUEST_URI} [R=301,L]