Fra*_*ggy 5 php .htaccess redirectstandardoutput
我需要使用URL传递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]
Run Code Online (Sandbox Code Playgroud)
任何链接或帮助都会很棒
您可能会发现通过以下方式获取.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);
Run Code Online (Sandbox Code Playgroud)
所以用这个调用脚本:
http://www.example.com/variable1/variable2/variable3
会回来:
Array
(
[0] => variable1
[1] => variable2
[2] => variable3
)
Run Code Online (Sandbox Code Playgroud)
这将适用于:
http://www.example.com/variable1/variable2/variable3和 http://www.example.com/process.php/variable1/variable2/variable3
您只在重写规则中捕获一个变量.
你需要这样的东西:
RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/?$ process.php?width=$1&height=$2&third=$3 [QSA,L]
Run Code Online (Sandbox Code Playgroud)
或者,有点短:
RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/?$ process.php?width=$1&height=$2&third=$3 [QSA,L]
Run Code Online (Sandbox Code Playgroud)
(\w单词字符包括字母,数字和下划线)
我只使用结束斜杠可选,所以这个重写规则只有在有3个变量的情况下才能执行.
| 归档时间: |
|
| 查看次数: |
4649 次 |
| 最近记录: |