.htaccess从子目录重写url

时间:2011-09-18 10:54:41

标签: .htaccess mod-rewrite

我的.htaccess中的条目是这样的:

RewriteRule ^$ dubai/ [R]
RewriteRule ^dubai/$ page/index.php [L]
RewriteRule ^$ pakistan/ [R]
RewriteRule ^pakistan/$ page/index.php [L]

基本上我想制定一个可以处理国家作为重写的一部分的规则,上面的代码是多余的,可能导致文件不必要地增长。

如果网页适用于任何国家/地区,是否可以自动将网页重定向到page/index.php?我尝试将这一行放在上面的最后一行:

RewriteRule ^([a-zA-Z\/]*)/$ page/index.php

我的问题是它不再读取其他要服务的页面的后续规则。以下行是上面最后一个规则下面的规则样本:

RewriteRule ^([a-zA-Z\/]*)rent/$ page/index.php?methodcall=rent&for=Rent
RewriteRule ^([a-zA-Z\/]*)landlords/$ page/index.php?methodcall=landlords

如果我删除了最后一次重写,则正确读取了密钥变量,会发现index.php文件不再读取get变量。

有什么建议吗?

提前致谢!

1 个答案:

答案 0 :(得分:4)

试试这个:

RewriteEngine on

RewriteRule ^([a-z]+)(\/?)$ page/index.php [NC,QSA,L]
RewriteRule ^([a-z]+)/rent(\/?)$ page/index.php?methodcall=rent&for=Rent [NC,QSA,L]
RewriteRule ^([a-z]+)/landlords(\/?)$ page/index.php?methodcall=landlords [NC,QSA,L]