我想在内部重定向从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]
答案 0 :(得分:1)
这是正确的解决方案:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^static\.outletika\.com
RewriteRule ^(.*)$ http://outletika.com/$1 [R=301,P]