我需要通过3个变量与URL,但使用斜线。 因此,例如,我会用这个网址:
http://www.example.com/variable1/variable2/variable3
我有这个在我的.htaccess的允许后文要通过的第一变量,但我不能让其他两个才能通过,即使我添加&$ 2
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /?([A-Za-z0-9_-]+)/?$ process.php?width=$1&height=$2 [QSA,L]
任何链接或帮助将是巨大
您只捕捉你的重写规则一个变量。
你需要这样的东西:
RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/?$ process.php?width=$1&height=$2&third=$3 [QSA,L]
或者,位较短:
RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/?$ process.php?width=$1&height=$2&third=$3 [QSA,L]
(该\w
字字符包括字母,数字和下划线)
我仅取得了结尾斜线可选的,所以这种重写规则只会做一些事情,如果恰好有3个变量。
您可能会发现更容易抓住的PHP文件中的参数,通过:
$pathinfo = isset($_SERVER['PATH_INFO'])
? $_SERVER['PATH_INFO']
: $_SERVER['REDIRECT_URL'];
$params = preg_split('|/|', $pathinfo, -1, PREG_SPLIT_NO_EMPTY);
echo "<pre>";
print_r($params);
因此调用这个脚本:
http://www.example.com/variable1/variable2/variable3
将返回:
Array
(
[0] => variable1
[1] => variable2
[2] => variable3
)
这两个工作:
http://www.example.com/variable1/variable2/variable3和http://www.example.com/process.php/variable1/variable2/variable3