如何使用mod_rewrite实现子域url重写

时间:2012-11-10 11:44:51

标签: .htaccess mod-rewrite

当用户在http://xyz.mywebsite.com为虚拟且不存在的地址栏中键入http://xyz.mywebsite.com时,我想将网站用户重定向到www.mywebsite / users.php?user = xyz。

我是初学者,并不了解网址重写。试图搜索谷歌和堆栈溢出但没有得到解决方案。

我从这个

开始
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^([^.]+).mobilehealthnig.com$
RewriteRule (.*) http://www.mywebsite.com/users.php?subdomain=%1
</IfModule>

也试过了,但这些都不适合我

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.mywebsite.com
RewriteCond %{HTTP_HOST} ([^.]+).mywebsite.com
RewriteRule ^(.*)$ /users.php?subdoamin=%1

1 个答案:

答案 0 :(得分:0)

好的,根据你的额外输入我建议这个设置:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.mywebsite\.com$
RewriteRule (.*) http://www.mywebsite.com/users.php?subdomain=%1 [L]
</IfModule>

如果这不起作用(我从您的评论中删除),您必须检查实际问题的位置:

  • 是否重写了工作?
  • 这条规则做了什么吗?什么?
  • 该规则被忽略了吗?为什么呢?

在这种情况下绝对最有意义的是打开重写日志以查看和理解重写引擎中实际发生的事情。请查看上述手册中的两个命令RewriteLogRewriteLogLevel。启用可能为7的日志级别,并查看发出单个请求时记录的内容。它应该让你知道在哪里寻找问题的原因。