【问题标题】:Using .htaccess to redirect URL to subdomain使用 .htaccess 将 URL 重定向到子域
【发布时间】:2015-12-16 22:43:36
【问题描述】:

我正在主持一个论坛,最近决定将其移至子域。

因此,我将所有论坛文件移至var/www/forum,我可以通过此目录访问论坛,即example.net/forum

我还在我的 apache 虚拟主机中设置了子域,这样如果我转到 forum.example.net,它将向我显示论坛,这也可以正常工作。

我现在需要做的就是设置一个 .htaccess 以使用目录 URL example.net/forum 将人们重定向到 forum.example.net

This answer 让我接近,但不是很接近,因为它会不断地重定向我。

理想情况下,我也想保留他们的请求,例如 example.net/forum/viewtopic.php?example 被重定向到 forum.example.net/viewtopic.php?example

在我寻找答案的过程中,mod-rewrite 可能会起作用,但我不太确定如何实现它。

任何帮助将不胜感激。

【问题讨论】:

    标签: php .htaccess mod-rewrite redirect


    【解决方案1】:

    /forum/.htaccess 中,您可以将此规则用作您的第一条规则

    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} ^(?:www\.)?(example\.net)$ [NC]
    RewriteRule ^(.*)$ http://forum.%1/$1 [R=301,L,NE]
    

    【讨论】:

    • 这对我不起作用。这是我的.htaccess 文件中的唯一规则,该文件位于/var/www/forum/ 中。我已经完成了硬刷新,但如果我去 example.net/forum/viewtopic.php?f=2&t=436 它不会重定向我。
    【解决方案2】:
    RewriteEngine On
    RewriteCond "%{HTTP_HOST}" "^www.example.net$" [OR]
    RewriteCond "%{HTTP_HOST}" "^example.net$"
    RewriteRule ^/?forum/(.*)$ http://forum.example.net/$1 [R=301]
    

    【讨论】:

    • 这对我不起作用。即,自从我添加它以来,什么都没有改变。我假设我添加到的 .htaccess 文件是论坛目录中的文件是正确的?
    猜你喜欢
    • 1970-01-01
    • 2014-08-19
    • 2023-03-09
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    • 1970-01-01
    相关资源
    最近更新 更多