Apache:将站点访问者从子目录重定向到子域,并在子目录后保留尾随URL

时间:2017-01-27 21:25:51

标签: apache .htaccess redirect

运行LAMP堆栈......

我尝试将公司的domain.com/blog流量重定向到新的子域(例如blog.domain.com),同时保留子目录(域名)之后的任何尾随URL。 com / blog / article1234变成了blog.domain.com/article1234)。

我尝试使用重写规则和条件对我的.htaccess文件进行了多次修改,这似乎是我最接近成功的地方:

checkAnalisi

我还以为我接近这个:

.selectPromptValue

但最终以某种方式打破了网址。如果是302或301,我不会亲自关心 - 我们打算无限期地保留这个子域名,但我过去曾经遇到过301的噩梦问题。在这一点上对任何事情开放。

思考?提前谢谢。

1 个答案:

答案 0 :(得分:0)

你的第二次尝试接近完美,我只做了一些小改动:

RewriteEngine on
RewriteRule ^/?blog/?(.*)$ blog.domain.com/$1 [R=302,END,QSA]

如果您使用较旧的apache服务器,则可能必须将END标志替换为L标志,除非您有相互冲突的规则,否则该标志通常有效。

一般提示:您应该始终更喜欢将此类规则放在http服务器主机配置中,而不是使用.htaccess样式文件。这些文件非常容易出错,难以调试,它们确实会降低服务器的速度。它们仅作为最后一个选项提供给您无法控制主机配置的情况(阅读:非常便宜的托管服务提供商),或者您有一个依赖于编写自己的重写规则的应用程序(这是一个明显的安全噩梦) )。