我想使用子域作为 mod_rewrite 的获取变量并使用一些参数:
eg /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
任何想法?
提前致谢
A 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
as $n
指的是第n组的匹配RewriteRule
一会儿%n
指最后成功的第n组的比赛RewriteCond
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)