2015-09-20 83 views
2

我正在主持论坛,最近决定将其移到子域。使用.htaccess将URL重定向到子域

因此,我将所有的论坛文件都移到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可能会工作,但我不太清楚如何实现它。

任何帮助,将不胜感激。

回答

1

里面/forum/.htaccess您可以使用此规则为你的第一条规则

RewriteEngine On 

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

这对我不起作用。这是''.htaccess'文件中的唯一规则,它位于'/ var/www/forum /'中。我已经做了一次硬刷新,但是如果我去example.net/forum/viewtopic.php?f=2&t=436它不重定向我。 – James

+0

好吧,它现在重定向我,但只是'http://forum./viewtopic.php?f = 2&t = 436' – James

+1

现在完美了,谢谢! – James

0
RewriteEngine On 
RewriteCond "%{HTTP_HOST}" "^www.example.net$" [OR] 
RewriteCond "%{HTTP_HOST}" "^example.net$" 
RewriteRule ^/?forum/(.*)$ http://forum.example.net/$1 [R=301] 
+0

这并没有为我工作。自从我添加它以来没有任何变化。我正确地认为我添加的.htaccess文件是论坛目录中的文件。 – James