htaccess内部从子域重定向到root

时间:2012-01-30 19:57:31

标签: apache .htaccess redirect subdomain

我想在内部重定向从static.domain.com到www.domain.com的所有内容。请注意,static.domain.com是一个现有的子域名,我不想使用通配符。我在子域名.htaccess

中使用了这段代码
RewriteCond %{HTTP_HOST} ^static\.domain\.com
RewriteRule ^(.*)$ http://domain.com/$1 [R=301]

但我得到错误:

  

禁止

     

您无权访问此服务器上的/。

提前致谢!

编辑:在我的根目录中,我有一个处理我的应用程序框架的index.php。

它看起来像这样:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?rt=$1 [L,QSA]

我的静态子域只包含一个看起来像这样的.htaccess文件:

RewriteCond %{HTTP_HOST} ^static\.domain\.com
RewriteRule ^(.*)$ http://domain.com/$1 [R=301]

我添加了RewriteEngine On,现在它将我重定向到外部(如果我请求static.domain.com/css/style.css,它会将我带到domain.com/css/style.css)。我想在内部重定向(浏览器中的地址不应该改变)。


解决方案

研究了一下apache RewriteRule Flags并找到了解决方案。我用P标志代理。这是.htaccess文件:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^static\.outletika\.com
RewriteRule ^(.*)$ http://outletika.com/$1 [R=301,P]

1 个答案:

答案 0 :(得分:1)

这是正确的解决方案:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^static\.outletika\.com
RewriteRule ^(.*)$ http://outletika.com/$1 [R=301,P]