【问题标题】:.htaccess rewrite subdomains.htaccess 重写子域
【发布时间】:2011-02-04 11:47:27
【问题描述】:

这是我当前的代码:

RewriteCond %{HTTP_HOST} !^example\.com [NC] 
#RewriteCond %{REQUEST_URI}!^something
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com 
RewriteRule (.*) something/%1/$1 [QSA,L]

我的目标是将http://*.example.com/whatever 重写为http://example.com/something/*/whatever,假设*whatever 相同。但是,我相信这会以某种方式导致无限循环,所以我添加了注释掉的行(RewriteBase 是 / btw),但是如果我取消注释,那么整个站点就是一个 500 响应代码。没有那行,只有子域错误。

我做错了什么,我该如何解决?我已经配置了服务器,所以任何东西都会被重定向到我的 public_html 文件夹。

编辑:为澄清起见,我正在尝试进行内部重定向,而不是外部重定向。

编辑:似乎没有内部重定向标志。有没有什么地方可以看到损坏的重写器的实际错误消息?如果我知道出了什么问题,我就更有可能修复它。

【问题讨论】:

  • 这只是我的一部分代码,/something/*/whatever 稍后也会被重定向。
  • 第二次,为什么要投票结束一个编程问题?这不属于服务器故障,.htaccess 与编程相关。

标签: .htaccess mod-rewrite subdomain


【解决方案1】:

我在规则中添加了 P(代理)标志,它起作用了。

【讨论】:

    【解决方案2】:

    我没有看到重写域的规则;也许这是你的问题。使用您的代码,尝试:

    RewriteCond %{HTTP_HOST} !^example\.com [NC] 
    #RewriteCond %{REQUEST_URI}!^something
    RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com 
    RewriteRule (.*) http://example.com/something/%1/$1 [QSA,L]
    

    希望对你有帮助 杰罗姆·瓦格纳

    【讨论】:

    • 它似乎重写了R标志的方式,有没有办法在内部做到这一点?我不希望这些更改可见。
    猜你喜欢
    • 2011-05-15
    • 2014-03-17
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多