.htaccess RewriteRule用于两个类似的URL无法按预期工作

时间:2015-08-05 02:21:00

标签: apache .htaccess mod-rewrite

我在编写.htaccess for Apache以重写几个URL时遇到了问题。

所以,其中一个案例是:

URL: http://localhost/openhoney/google/4/Laura%20Neiva
Rule: RewriteRule ^openhoney/google/([0-9])/(.*)$  /openhoney/showgoogletrend.php?t=$2&id=$1 [L]
Final: http://localhost/openhoney/showgoogletrend.php?t=Laura%20Neiva&id=4

上面的案例运作正常,但如果我尝试类似的东西,它就不会按预期工作。

URL: http://localhost/openhoney/twitter/1489/Coutinho
Rule: RewriteRule ^openhoney/twitter/([0-9])/(.*)$  /openhoney/showtwittertrend.php?t=$2&id=$1 [L]
Final: http://localhost/openhoney/showtwittertrend.php?t=Coutinho&id=1489

在最后一个案例中," Final" URL工作正常,但当我使用" URL"时,它无法正常工作。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

由于([0-9])只匹配一个号码,如果您想匹配一个或多个号码,可以使用([0-9]+);如果您想要4个号码,则可以使用([0-9]{4})(否)更多,不能少)像这样:

RewriteRule ^openhoney/twitter/([0-9]+)/(.*)$  /openhoney/showtwittertrend.php?t=$2&id=$1 [L]