.htaccess 中正则表达式不起作用

.htaccess 中正则表达式不起作用

我正在尝试使用以下方法限制可以在请求 URI 中使用的字符:

RewriteEngine on

RewriteCond %{REQUEST_URI} !^([a-z0-9:/\.\_\-]) [NC]

RewriteRule ^.* - [F,L]

由于某种原因,它无法工作。有什么想法吗?

谢谢!

答案1

好问题。这是防范 XSS(跨站点脚本)的好方法。

这是解决方案:

            RewriteEngine on
            RewriteCond %{REQUEST_URI} [^a-z0-9\_\:\/\.\-] [NC]
            RewriteRule () - [F,L]

更短的等价形式是:

            RewriteEngine on
            RewriteRule [^a-z0-9\_\:\/\.\-] - [F,L]

相关内容