【问题标题】:Redirect/Subdomain with .htaccess使用 .htaccess 重定向/子域
【发布时间】:2011-02-02 06:29:19
【问题描述】:

我目前拥有的:

  • 通配符 DNS 记录。这样每个子域都指向www.galop.gr
  • 一个动态 (php) 生成的 .htaccess 文件,我在其中为我想要工作的每个子域附加以下代码:

RewriteCond %{HTTP_HOST} ^fractalbit.galop.gr$ [OR]
RewriteCond %{HTTP_HOST} ^www.fractalbit.galop.gr$
RewriteRule ^/?$ http://www.galop.gr/index.php?user=1 [R=301]

一切正常,如果可能的话,我只是想要更多。

现在,如果有人输入fractalbit.galop.gr 将被重定向到http://www.galop.gr/index.php?user=1

是否可以这样做但将 fractalbit.galop.gr 保留到浏览器的地址栏?

【问题讨论】:

    标签: .htaccess subdomain


    【解决方案1】:

    [R=301] 表示:进行重定向,由于您使用的是绝对地址,它也会强制重定向,我只需将规则更改为:

    RewriteCond %{HTTP_HOST} ^fractalbit.galop.gr$ [OR] 
    RewriteCond %{HTTP_HOST} ^www.fractalbit.galop.gr$ 
    RewriteRule ^/?$ /index.php?user=1 [L]
    

    【讨论】:

    • 谢谢!这就是我需要的!如果您有好意,还有几个问题... 1. 这其中的关键部分是什么?相对 URL 或 [L]?或两者?你能简单解释一下[L]是什么意思吗? 2. 如果想将 GET 变量传递给子域,我应该怎么做?例如fractalbit.galop.gr/?v1=test1&v2=test2 是否正确?
    • 不客气,关键部分是相对地址并删除 [ R=301 ],因为这些东西会强制“重定向”,如果没有这些东西,服务器只会在内部重写地址,但不会告诉浏览器检查另一个地址 [L] 语句意味着如果请求匹配此规则,它将不会尝试匹配任何其他规则,如果您想将变量传递给子域,它将简单地停止处理您应该指定以开头的绝对地址http:// 但它会强制重定向,以避免您可能利用两个地址都指向同一个站点
    猜你喜欢
    • 2017-08-24
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    • 2014-08-19
    • 2013-08-10
    • 2023-03-09
    • 1970-01-01
    相关资源
    最近更新 更多