我正在使用.htaccess转换包含以下参数的链接......:
www.domain.com / offer.php?id=
1000 &title=
所有衬衫的折扣均为20%
到
www.domain.com / offer/
1000 /
所有衬衫的折扣均为20%
现在,当我尝试打开链接时,显示服务器端错误:
错误请求 您的浏览器发送了此服务器无法理解的请求。
在我的代码中,title
值不起任何作用,但出于SEO原因我需要它。所以当我删除" %"页面打开的字符没有问题。
那么我该如何解决这个问题,这样我的链接就会打开,尽管HTTP请求中有百分比字符?
答案 0 :(得分:3)
如Nordenheim所述,问题是在标题属性中使用特殊字符。
使用PHP,您可能希望在发送链接上的title
属性上使用urlencode()
,
所以:
<?php
$title = "All shirts are with a discount of 20%";
$link = urlencode($title);
?>
<a href='http://www.domain.com/offer.php?id=1000&title=<?php print $link;?>'>Click here</a>
这会将All shirts are with a discount of 20%
转换为网址安全字符串All+shirts+are+with+a+discount+of+20%25
,并解决您从.htaccess
mod_rewrite获得的错误。
答案 1 :(得分:2)
百分号(%25
)用于对url字符串中的特殊字符进行编码。因此,它具有特殊含义,必须作为编码字符传递,即<meta name="description" content="content" />
。
由于您传递了特殊字符的指示并且未发送任何其他内容,因此您会收到错误。