我正在尝试使用PHP工作并有一个小问题的下载系统。
我的htaccess文件中有这个:
RewriteEngine on
RewriteRule ^.*$ process.php?%{THE_REQUEST}
我是这样的网址:
/download/path1/path2/some file name.pdf
在我的php中,$ _GET看起来像这样:
Array
(
[GET_/download/path1/path2/some_file_name_pdf?q] => somevalue HTTP/1.1
)
这很好用,我可以用空格替换下划线,一切运行良好。问题是,当文件名实际上有一个下划线时,因为我用一个空格替换下划线,因为大多数文件在名称中都有空格。只有少数文件在名称中实际上有一个下划线,这是我无法改变的。
这是问题所在:
/download/path1/path2/some_file_name.pdf
在我的php中,$ _GET看起来像这样:
Array
(
[GET_/download/path1/path2/some_file_name_pdf?q] => somevalue HTTP/1.1
)
有没有办法用htaccess将%{THE_REQUEST}中的空格替换为某些字符(如〜)或字符序列(如__)或类似的东西?
答案 0 :(得分:2)
您已经传递了它,但只是不要使用$ _GET。试试这个。
RewriteEngine on
RewriteRule . /process.php [L,NE]
然后在PHP中
print_r($_SERVER["REQUEST_URI"]);
然后你可以在/
上爆炸。