我想使用mod_rewrite将子域用作get变量并使用一些参数:
例如/page/language/site/counter
- > index.php?o=operator&lg=language&s=arg1&c=arg2
如何使用mod_rewrite?
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST} ^([a-zA-Z]{3,6})\.example\.com
RewriteRule ^index/([a-z]{2})/([0-9]{1,2})/([0-9]{1,2})$ http://www.example.com/index.php?o=%1&lg=%2&site=%3&counter=%4 [NC,L] # for index.php
RewriteRule ^export/([a-z]{2})/([0-9]{1,2})/([0-9]{1,2})$ http://www.example.com/export.php?o=%1&lg=%2&site=%3&counter=%4 [NC,L] # for export.php
有什么想法吗?
提前致谢
答案 0 :(得分:0)
RewriteCond
仅属于紧随其后的RewriteRule
。因此,在您的情况下,两个RewriteCond
指令仅属于第一个RewriteRule
指令,第二个RewriteRule
没有关联的RewriteCond
指令。
您可以通过合并两个RewriteRule
s来解决此问题:
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteCond %{HTTP_HOST} ^([a-zA-Z]{3,6})\.example\.com$
RewriteRule ^(index|export)/([a-z]{2})/([0-9]{1,2})/([0-9]{1,2})$ http://www.example.com/$1.php?o=%1&lg=$2&site=$3&counter=$4 [NC,L]
另请注意,使用$n
代替%n
作为$n
,指的是RewriteRule
的第n组匹配%n
引用RewriteCond
到最后成功的{{1}}的第n组的匹配。