0

这是我的 .htaccess 规则:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*)/(.*)$ index.php?var1=$1&item=$2&var2=%{REQUEST_URI} [NC,L]
RewriteRule ^(.*)$ index.php?var1=$1 [NC]

这是一个网址(最后带有尾随点): http://localhost/test/secondvar.

问题是尾随点不在var2 GET变量内

我使用了 a print_r($_GET),这是上面 url 的结果:

数组([var1] => test [var2] => secondvar [uri] => /test/secondvar.)

所以我的问题是,如何从 URL 中获取尾随点作为 var 的参数?如您所见,这REQUEST_URI表明 apache 知道该点。

我知道我不能将路径作为GET参数发送并注意从 PHP 读取 URI 中的路径,但我想知道为什么点不来以及如何修复它,如果太复杂我宁愿去直接PHP解决方案。

编辑:不仅是尾随点,而且是尾随?太... =[

4

1 回答 1

0

可能只是 php 排除了尾随点。我知道他们经常将 POST/GET 中的点转换为下划线。我会做

explode('/',$_SERVER['REQUEST_URI'])
于 2010-01-11T02:57:05.037 回答