我有一个当前重定向的 mod 重写
domain.com/folder/user
至
domain.com/folder.php?username=user
使用:
RewriteRule ^folder/(.+)$ folder.php?username=$1 [QSA,L]
但是我需要做的是重定向 http://user.domain.com/至 http://www.domain.com/folder.php?username=user 。如果可能的话,我可以排除某些子域(例如 www.mail. 等)。
我该怎么做?非常感谢任何帮助:)
最佳答案
它是如何工作的:
- 从
http://user.domain.com/
中提取user
并使用RewriteCondition
保存对其的反向引用。 . 请求的主机名存储在服务器变量中。
Figure : The back-reference flow through a rule. In this example, a request for
/test/1234
would be transformed into/admin.foo?page=test&id=1234&host=admin.example.com
. Source在
RewriteRule
使用RewriteCondition
的反向引用。- 另请参阅
RewriteRule
部分中的注释:If you wish to match against the hostname, port, or query string, use a RewriteCond with the %{HTTP_HOST}, %{SERVER_PORT}, or %{QUERY_STRING} variables respectively.
- 将您的(虚拟)服务器配置为监听您想要重写的所有域,以确保所有请求都传递到您可以进行重写的服务器的同一部分/根目录。否则您需要进行内部代理。
关于php - 使用 mod_rewrite 和 htaccess 进行 url 重定向的子域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10441073/