2011-04-27 86 views
8

我不能重写包括两个参数,但最后一个参数是可选的,因此,例如:重写规则 - 两个参数,但最后一个参数是可选

http://www.mywebsite.com/friends/jamie - (正斜杠应该是可选的太)。这应该是与此相同:

http://www.mywebsite.com/friends.php?name=jamie 

当包括第二参数

http://www.mywebsite.com/friends/jamie/30 - 应该是相同的,因为这:

http://www.mywebsite.com/friends.php?name=jamie&page=30 

此规则不工作:

RewriteRule ^friends/(.*)/(.*)$ friends.php?name=$1&page=$2 

因为我得到这个:The requested URL /friends/jamie was not found on this server.但工程,如果我包括第二个参数的页码,所以基本上第二个参数应该是可选的。

回答

17

尝试使用这个规则来代替:

RewriteRule ^friends/([^/]*)/?(.*)$ friends.php?name=$1&page=$2 

希望帮助

+0

这工作。谢谢。 :-) – MacMac 2011-04-27 19:46:19

+1

4年后:谢谢,你救了我的一天! 5年后的 – 2015-08-14 14:50:57

+0

。非常感谢 :) – 2016-05-22 13:57:22