“%”和Htaccess出错

时间:2011-10-06 11:11:32

标签: php .htaccess

我的某些包含%simbol的网址存在htaccess问题。

例如:.......他输了10%-of-his-money.html

错误请求 您的浏览器发送了此服务器无法理解的请求。 此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误。

在我的htaccess中:

RewriteRule ^([^ /] +)。html $ abc.php?url = $ 1 [L]

我该怎么办?

3 个答案:

答案 0 :(得分:1)

根据您要执行的操作,请参阅此处:

.htaccess mod rewriterule and ampersands(第一个答案,如果你传递了网址,则适用于%字符)

htaccess to escape percent (%) from URL

.htaccess mode_rewrite match percent symbol problem

urlencoded Forward slash is breaking URL

... https://stackoverflow.com/search?q=htaccess+percent

如果url =的内容不是原始/请求的脚本而是传递的变量,则需要在发送的PHP脚本中rawurlencode

答案 1 :(得分:1)

%在URL中具有特殊含义(并且非常重要),因此它应该是正确的urlencoded。或者用“百分比”来改变它,这对于搜索引擎优化目的来说更好。

答案 2 :(得分:0)

对URL进行编码以便可以传递特殊字符(例如空格字符)时,会将它们转换为十六进制数字,前面加上%字符。您的URL包含序列%-o,该序列无效并导致Apache抛出错误。尝试使用相同的网址,但将%替换为%25并查看其效果。