.htacces将子域重定向到文件夹

时间:2016-11-18 07:51:26

标签: php apache .htaccess mod-rewrite

我有一个subomaniain链接" help.example.com",这是我建立一个正常运行的Wp网站的地方。我收到了客户的要求,他希望通过" help.example.com/something"来访问此网站。域名在apache服务器上。

我试着在页面目录中的.htacces文件中跟随以下行:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^help.example.com
RewriteRule ^(.*) http://help.example.com/something$1 [P]

但不幸的是,当我打电话给" http://help.example.com/something" WP检测到的浏览器中的URL与非现有子页面一样。 有人可以告诉我我做错了什么并提出解决方案吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

看起来你从错误的一面处理问题。请试试这样:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^help.example.com$
RewriteRule ^/?something(.*)$ http://help.example.com$1 [L,QSA]

另一种选择确实是使用了你已经尝试过的apache代理模块,但你必须再次扭转局面:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^help.example.com$
RewriteRule ^/?something(.*)$ http://help.example.com$1 [P]

两者之间的区别在于用户成功进入页面后将看到的URL。

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