我正在尝试为 mod_rewrite 编写执行以下操作的规则: URL:/xml/regularString
重定向到/xml/script.php?code=regularString
这适用于一个简单的规则,例如:
RewriteRule ^xml/([A-Za-z0-9-]+)/?$ xml/script.php?code=$1 [NC]
(附带说明:为什么?
重要?我不希望有任何可选的重定向/匹配,但如果我删除它就不起作用)
无论如何...我主要需要以相同的方式重定向甚至非常不常见的特殊字符,但是如果我尝试扩展规则,它根本不会匹配 = 404,或者它会使它们混乱,以至于 PHP 脚本不能甚至因为这样的事情(错误日志)而被访问:
404等.../xml/]*\xc2\xb0_\xc2\xb0*[
和规则
RewriteRule ^/xml/([A-Za-z0-9-*°><_]+/?$
... ETC; 有或没有转义它们(通过)
(这应该是:URL /xml/>*°_°*<
重定向到/xml/script.php?code= > *°_°*<
(或其他一些我可以在 PHP 中解码以获得相同结果的编码)
如何确保 mod_rewrite 始终找到 php 脚本并将代码重定向到它?恐怕我可以弄清楚如何在 PHP 中将它弄乱,但在那些 RewriteRules 中却不行。我在文档中尝试了诸如[B]
或之类的标志[NE]
,用于更改 mod_rewrite 的转义行为,但它并没有比前面提到的错误日志条目的 404 更好。