【问题标题】:htaccess internal redirect from subdomain to roothtaccess 从子域到根的内部重定向
【发布时间】: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


【解决方案1】:

这是正确的解决方案:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 2011-04-29
    • 2010-11-22
    • 2023-03-17
    • 2014-06-24
    • 2022-09-30
    • 1970-01-01
    相关资源
    最近更新 更多