Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RewriteRule.htaccess允许所有字符_.htaccess - Fatal编程技术网

RewriteRule.htaccess允许所有字符

RewriteRule.htaccess允许所有字符,.htaccess,.htaccess,对于.htaccess,我有一个重写规则,我想允许URL中的所有字符 我通过PHP过滤掉任何不好的字符 我目前拥有的代码是 RewriteRule ^([a-zA-Z0-9\-]+)\.php$ file.php?key=$1 [L] 我试着把它改成 RewriteRule ^(.*)\.php$ file.php?key=$1 [L] 让一切都过去,但它不起作用。我不想在.htaccess-only PHP上过滤任何内容。即使我在PHP中过滤掉所有字符,也允许它们存在安全风险吗 即使我在P

对于
.htaccess
,我有一个
重写规则
,我想允许URL中的所有字符

我通过PHP过滤掉任何不好的字符

我目前拥有的代码是

RewriteRule ^([a-zA-Z0-9\-]+)\.php$ file.php?key=$1 [L]
我试着把它改成

RewriteRule ^(.*)\.php$ file.php?key=$1 [L]
让一切都过去,但它不起作用。我不想在.htaccess-only PHP上过滤任何内容。即使我在PHP中过滤掉所有字符,也允许它们存在安全风险吗

即使我在PHP中过滤掉所有字符,也允许它们存在安全风险吗

是的,有很多问题,请看这个问题:


这取决于您的应用程序,但.htaccess可用作安全机制。

您可能希望在重定向文件之前检查文件是否存在,以免陷入无限循环:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\.php$ file.php?key=$1 [L]
第一行验证文件是否存在,如果不存在则重定向

第二行将重定向到,
anything.php
file.php?key=anything
否则
file.php
将自己重定向到
file.php


是的,只要在使用之前用PHP代码对信息进行适当的清理,允许URL上的任何内容都没有问题。

服务器日志怎么说?你的身份是什么
404-找不到
?@OskarHane它工作正常,我只是不想。htaccess过滤我的变量,我只想用已经实现的php实现。my file.php代码不受SQL注入的影响,php filters key=$1用于任何html或有趣的字符。我想我做得对,但后来意识到key=$1只用于文件名,如何添加通过.htaccess传递到php的多个变量?@AbbyE您的意思是如果您有类似于
anything.php?var1=something
?如果是这样,您可以使用QSA(查询字符串附加)标志来保留变量,
[QSA,L]