【发布时间】:2012-02-22 14:31:47
【问题描述】:
我想在内部将所有内容从 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]
【问题讨论】:
-
你的根目录中有
index页面吗? -
你还需要一个
RewriteEngine On -
您正在重定向到
domain.com。你不是说要重定向到 www.domain.com 吗?如果您直接向domain.com/somevaliduri 发出请求,您会得到同样的错误吗 -
我更新了更多细节,现在似乎重定向到外部
-
您应该将解决方案作为答案发布并接受它,以便问题看起来已解决
标签: apache .htaccess redirect subdomain