我有 .htaccess 代码:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^([\w-]+)/*$ ./index.php?page=$1
这允许在正斜杠后附加一个参数,并在PHP中用作$_GET
,如下所示:
URL:
http://www.url.com/home
PHP:
<?php
echo $_GET['home'];
?>
我的问题是,如何获取每个正斜杠并将该值作为新的$_GET
传递给PHP使用?我假设问题是使用正则表达式解决方案,但由于我没有在正则表达式上搞砸我无法理解它。
只是为了澄清一下,我想要这个:
http://www.url.com/param1/param2/param3
翻译为:
$_GET['param1'];
$_GET['param2'];
$_GET['param3'];
等等。
答案 0 :(得分:3)
这是一个想法:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9-=_.]+)/([a-zA-Z0-9-=_.]+)/([a-zA-Z0-9-=_.]+)/?$ http://www.example.com/index.php?par1=$1&par2=$2&par3=$3 [L]
不能使用(。*)因为包含斜杠。
答案 1 :(得分:2)
请勿在重写模块中执行此操作。
而是对您的脚本进行简单的重写,并在那里访问原始reqeust($ _SERVER ['HTTP_REQUEST_URI'])。您将获得在请求中指定的路径,您可以使用explode()函数在斜杠中分隔该路径。