.htaccess重定向,如果domain = x.example.com

时间:2014-02-19 23:02:34

标签: apache .htaccess

我在子域名上有一个网站:

x.example.com

我把它放在子域上,因为它在与主站点不同的服务器上运行。

使用apache的代理,我现在已将网站移至example.com/x/我想从子域进行301重定向,如下所示:

Redirect 301 / http://example.com/x/

但我不知道如何确保它不会导致重定向循环,因为我重定向到的页面包含相同的htaccess文件(因为它是旧文件的代理)

这是我试过的:

RewriteCond %{HTTP_HOST} ^x.example.com$ [NC]
RewriteRule ^(.*)$ http://staging.example.se/x/ [R=301,L,NE]

这是我的全部.htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteBase /

RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php?qa-rewrite=$0&%{QUERY_STRING} [L]

RewriteCond %{HTTP_HOST} ^zenqa.herokuapp.com$ [NC]
RewriteRule ^(.*)$ http://staging.zenconomy.se/faq/$1 [R=301,L,NE]
</IfModule>

1 个答案:

答案 0 :(得分:0)

您错过了反向引用,需要$1来获取原始请求并将其传递给重定向:

RewriteCond %{HTTP_HOST} ^x.example.com$ [NC]
RewriteRule ^(.*)$ http://staging.example.se/x/$1 [R=301,L,NE]