我正在尝试重写.htaccess中的路径
= - = - = - = - = - = EDIT - = - =
您好我可能没有清楚地表达我的问题。 所以这是我的问题的现实例子。
"http://fames.in/site/bollywoodhungama.com" - works fine
"http://fames.in/site/bollywoodhungama.com/2" - error
网址格式为:
http://fames.in/site/(site name)/(page number)
我在.htaccess
中使用以下代码RewriteRule ^site/(.*)$ sitelist.php?q=$1&page=1
RewriteRule ^site/(.*)/([0-9]+)$ sitelist.php?q=$1&page=$2
第一行正常。 在代码的第二行,htaccess将整个参数传递给'q'。以上url它被传递为“/sitelist.php?q=bollywoodhungama.com/2”。我需要它分别传递'q'和'page'。比如“/sitelist.php?q=bollywoodhungama.com&page=2”
答案 0 :(得分:0)
问题是第一条规则总是匹配。 。*是贪婪的,所以/ 2是比赛的一部分。你需要的是将匹配更改为“除了斜线之外的任何东西”,如下所示:
RewriteRule ^site/([^/]*)$ sitelist.php?q=$1&page=1
因此第二个域将无法匹配,然后第二个规则将匹配。
如果您需要在此规则之后应用更多规则,则不起诉,但您可能希望在规则的末尾添加“last rule flag”[L]。