我在子域名上有一个网站:
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>
答案 0 :(得分:0)
您错过了反向引用,需要$1
来获取原始请求并将其传递给重定向:
RewriteCond %{HTTP_HOST} ^x.example.com$ [NC]
RewriteRule ^(.*)$ http://staging.example.se/x/$1 [R=301,L,NE]