1

我有这个.htaccess代码:

Options +FollowSymLinks  
RewriteEngine On  
RewriteCond %{SCRIPT_FILENAME} !-d  
RewriteCond %{SCRIPT_FILENAME} !-f  
RewriteRule ^([\w-]+)/*$ ./index.php?page=$1 

$_GET这允许在正斜杠之后附加一个参数并在 PHP中用作 a ,如下所示:

网址:

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'];

等等等等。

4

2 回答 2

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]

不能使用 (.*) 因为包含斜线。

于 2012-12-03T16:13:26.740 回答
2

不要在重写模块中这样做。

而是对您的脚本进行简单的重写并访问其中的原始请求 ($_SERVER['HTTP_REQUEST_URI'])。您将获得在请求中指定的路径,您可以使用 explode() 函数在斜杠处分隔该路径。

于 2012-12-03T16:17:08.733 回答