0

我有这样的htaccess

RewriteRule i_am_(.*)_fan([0-9]).html$ /fans.php?player=$1&page=$2

当我输入这样的网址时,http://messi_fans.com/i_am_messi_fan2.html它会重定向到页面http://messi_fans.com/fans.php。但是GET变量是

Array ( [player] => messi_fan2 [page] => ) 

我想要这样 的GETArray ( [player] => messi [page] =>2 ) 如何修改上面的htaccess?

4

3 回答 3

1

首先至少使用基本指令和一些条件来防止循环,如下所示:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI}  !fans\.php                        [NC]
RewriteCond %{REQUEST_URI}  ^/i_am_([^_]+)_fan([^.]+)\.html/? [NC]
RewriteRule .*              fans.php?player=%1&page=%2        [L]

静默地图

http://messi_fans.com/i_am_messi_fan2.html 带或不带斜杠

至:

http://messi_fans.com/fans.php?player=messi&page=2

对于永久和可见的重定向,将 [L] 替换为 [R=301,L]

于 2013-03-06T14:20:53.993 回答
0

您应该通过将问号附加到您的: 来使用惰性量词.*

i_am_(.*?)_fan([0-9]).html$
于 2013-03-06T12:35:41.213 回答
0

它应该是

RewriteRule i_am_([a-zA-Z])_fan([0-9]).html$ /fans.php?player=$1&page=$2
于 2013-03-06T12:36:08.813 回答