【问题标题】:Subdomain redirect to URL Parameter while keeping other url params intact子域重定向到 URL 参数,同时保持其他 url 参数不变
【发布时间】:2012-07-09 23:19:10
【问题描述】:

对于这个问题的答案,我看起来很疯狂——但我还没有找到答案。如果我遗漏了什么,我提前道歉。

我希望在保留其他 url 片段的同时将子域转换为 url 参数。

如:

http://sub.domain.tv/value 重定向到http://domain.tv/value?campus=sub

这是我在浏览了这里的许多帖子后尝试过的:

# campus
RewriteCond %{HTTP_HOST} ^sub.domain.tv$ [NC]
RewriteRule ^(.*)$ http://domain.tv/$1/?campus=sub [R=301,L]

在将 sub.domain.tv 重定向到 domain.tv?campus=sub 时效果很好,但不适用于其余的 URL 参数(因此,前往 sub.domain.tv/value 没有任何作用)。

我尝试了其他将 %1 和 $1 用作变量的示例,例如这篇文章: htaccess subdomain redirct with last url parameter 但我不明白其中的区别(而且我尝试过的示例不起作用)。

感谢您的观看! :) 非常感谢!

【问题讨论】:

    标签: .htaccess redirect url-rewriting subdomain


    【解决方案1】:

    您是否尝试过 [QSA] 参数。这会将所有剩余的查询参数添加到campus=sub

    【讨论】:

    • 特里,非常感谢您的回复!我没有,我会调查一下并告诉你!
    • 看起来 [QSA] 将值移动到参数后面 - 所以 .tv/value 将重写为 .tv/?campus=subvalue,而我需要它们留在他们面前。所以 .tv/value 转换为 .tv/value?campus=sub - 至少,这就是这个网站所说的:“当捕获变量时,你需要知道的第一件事是 [QSA] 标志,它只需将所有原始变量标记回目标 URL 的末尾。” [通过:corz.org/serv/tricks/htaccess2.php] 我很感激这个建议!
    • /value 不是 URI 术语中的参数;它是资源路径的一部分。 (参数是 ?print=1。)所以 QSA 确实适用于此。此规则会将http://sub.domain.tv/value 重定向到http://domain.tv/value/?campus=sub 如果您不想要最后一个“/”,则将其放在$1 之后。
    猜你喜欢
    • 2023-01-27
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 2015-09-05
    • 2018-03-21
    • 2021-10-26
    • 1970-01-01
    • 2011-05-04
    相关资源
    最近更新 更多