我的某些包含%simbol的网址存在htaccess问题。
例如:.......他输了10%-of-his-money.html
错误请求 您的浏览器发送了此服务器无法理解的请求。 此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误。
在我的htaccess中:
RewriteRule ^([^ /] +)。html $ abc.php?url = $ 1 [L]
我该怎么办?
答案 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
并查看其效果。