Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用htaccess从url字符串访问变量?_Php_.htaccess - Fatal编程技术网

Php 如何使用htaccess从url字符串访问变量?

Php 如何使用htaccess从url字符串访问变量?,php,.htaccess,Php,.htaccess,我有权这样做 RewriteRule i_am_(.*)_fan([0-9]).html$ /fans.php?player=$1&page=$2 当我像这样输入urlhttp://messi_fans.com/i_am_messi_fan2.html。它将重定向到页面。但是GET变量是 Array ( [player] => messi_fan2 [page] => ) 我想要像这样数组([player]=>mesi[page]=>2) 如何修改上述htaccess?

我有权这样做

RewriteRule i_am_(.*)_fan([0-9]).html$ /fans.php?player=$1&page=$2
当我像这样输入url
http://messi_fans.com/i_am_messi_fan2.html
。它将重定向到页面。但是GET变量是

Array ( [player] => messi_fan2 [page] => ) 
我想要像这样
数组([player]=>mesi[page]=>2)
如何修改上述htaccess?

您应该在
*
中添加问号,以使用:

i_am_(.*?)_fan([0-9]).html$
应该是

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

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

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]