这是我的.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
变量
我使用了print_r($_GET)
,这是上面网址的结果:
Array ( [var1] => test [var2] => secondvar [uri] => /test/secondvar. )
所以我的问题是,如何将URL中的尾随点作为var的参数?如您所见,REQUEST_URI
显示apache知道点。
我知道我不能将路径作为GET
参数发送,并注意从PHP中读取URI中的路径,但我想知道为什么点不会到来以及如何修复它,如果太复杂,我宁愿选择直接的PHP解决方案。
编辑:不仅是尾随点而是尾随?太...... = [
答案 0 :(得分:0)
可能只是php排除尾随点。我知道他们经常将POST / GET中的dot转换为下划线。我会做的
explode('/',$_SERVER['REQUEST_URI'])