if .htaccess中的if语句

时间:2014-02-25 21:04:58

标签: apache .htaccess mod-rewrite

我正在尝试做以下事情:我在我的htaccess中有这个

Options FollowSymLinks
RewriteEngine On

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [OR,NC]
RewriteCond %{HTTP_HOST} ^site-staging\.com$ [NC]
RewriteRule ^ https://new_site-staging.com%{REQUEST_URI} [L,R=301]

所以,我正在删除“www”并重定向到“new_site-staging.com”所有内容,如果有一些特定页面用户输入,我正在重定向。 我的问题是,我可以制作某种if / else语句:

if (URL == "site2014.com") {
   RewriteRule ^ https://site2014.com%{REQUEST_URI} [L,R=301]
} else {
  RewriteRule ^ https://new_site-staging.com%{REQUEST_URI} [L,R=301]
}

所以,如果它是site2014然后重定向到那个,如果它没有将所有内容重定向到new_site-staging.com。 这可能通过htaccess吗?

2 个答案:

答案 0 :(得分:0)

为什么不在第一个域的RewriteRule下为site2014.com创建相同的规则集?然后,只需在一切之后进行一般性重定向。

试试这个:

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

RewriteCond %{HTTP_HOST} !^new_site-staging\.com$ [NC]
RewriteRule ^ https://new_site-staging.com%{REQUEST_URI} [L,R=301]

答案 1 :(得分:0)

您可以遵守以下规则:

Options FollowSymLinks
RewriteEngine On

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^site2014\.com$ [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^site2014\.com$ [NC]
RewriteRule ^ https://new_site-staging.com%{REQUEST_URI} [L,R=301,NE]
相关问题