【问题标题】:how to achieve subdomain url rewrite using modrewrite如何使用 mod_rewrite 实现子域 url 重写
【发布时间】:2012-11-10 20:40:04
【问题描述】:

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

我是初学者,对 url 重写知之甚少。试图搜索谷歌和堆栈溢出,但没有得到解决方案。

我从这个开始

<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

【问题讨论】:

  • 我建议你简单阅读一下mod_rewrite的优秀手册。它对所有选项、很好的例子和提示都有很好的解释:httpd.apache.org/docs/current/mod/mod_rewrite.html
  • 如果在那之后您无法弄清楚如何解决您的问题,请发布您迄今为止尝试过的内容(您的代码)以及您无法解决的具体问题。
  • @arkascha - 我已经尝试过了,这就是我的开始。

标签: .htaccess mod-rewrite


【解决方案1】:

好的,根据您的额外输入,我建议进行此设置:

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

如果这不起作用(我从你的评论中得到),你必须检查实际问题出在哪里:

  • 重写是否有效?
  • 这条规则有什么作用吗?什么?
  • 是否忽略了该规则?为什么?

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

【讨论】:

  • 你能给我一些关于如何使用 RewriteLog 的例子吗?
  • 重写日志的使用示例?我可以建议您简单地阅读精美的手册吗?太棒了!附带对所有选项和命令的良好解释,甚至是清晰的示例!为什么人们从不阅读手册?它有助于! httpd.apache.org/docs/current/mod/mod_rewrite.html
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-07
  • 1970-01-01
  • 2011-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多