.htaccess传递域名

时间:2009-12-01 08:10:44

标签: .htaccess

我正在尝试重写.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”

1 个答案:

答案 0 :(得分:0)

问题是第一条规则总是匹配。 。*是贪婪的,所以/ 2是比赛的一部分。你需要的是将匹配更改为“除了斜线之外的任何东西”,如下所示:

RewriteRule ^site/([^/]*)$ sitelist.php?q=$1&page=1

因此第二个域将无法匹配,然后第二个规则将匹配。

如果您需要在此规则之后应用更多规则,则不起诉,但您可能希望在规则的末尾添加“last rule flag”[L]。