使用mod_rewrite和htaccess进行url重定向的子域名?

时间:2012-05-04 00:14:34

标签: php html .htaccess mod-rewrite

我有一个mod重写,目前正在重定向

  

domain.com/folder/user

  

domain.com/folder.php?username=user

使用:

  

RewriteRule ^文件夹/(.+)$ folder.php?用户名= $ 1 [QSA,L]

我需要做的是将http://user.domain.com/重定向到http://www.domain.com/folder.php?username=user。如果可能的话,我可以排除某些子域名(例如转发邮件等邮件等)。

我该怎么做?非常感谢任何帮助:)

1 个答案:

答案 0 :(得分:1)

工作原理:

  • user中提取http://user.domain.com/并使用RewriteCondition保存对其的反向引用。
  • 请求的主机名存储在服务器变量中。

      

    enter image description here   图:通过规则的反向引用流。   在此示例中,/test/1234的请求将转换为/admin.foo?page=test&id=1234&host=admin.example.comSource

  • RewriteRule中使用RewriteCondition的反向引用。

  • 另请参阅RewriteRule部分中的注释:
      

    如果您希望与主机名,端口或查询字符串匹配,请分别使用带有%{HTTP_HOST},%{SERVER_PORT}或%{QUERY_STRING}变量的RewriteCond。

  • 配置(虚拟)服务器以侦听要在其中重写的所有域,以确保将所有请求传递到服务器的同一部分/根目录,您可以在其中进行重写。否则你需要在内部代理。