我想强制小写GET,我使用disqus.com评论系统,我基于GET提供页面,disqus.com没有区分
http://www.mydomain.com/words/?w=Hej
和
http://www.mydomain.com/words/?w=hej
它为不同的页面提供评论。
解决此问题的最佳方法是什么?我似乎无法使用我读过的.htcacess,如果它的大写,我不想提供404,是否有其他方法强制URL中的小写?
编辑2:
我尝试了自己的解决方案
$page = urldecode($_GET['w']);
$lowerPage = strtolower($page);
if ($page !== $lowerPage) {
header("Location: http://www.mydomain.com/words/?w=". $lowerPage);
die();
}
在Firefox中工作得很好,谷歌在重定向方面增加了延迟 - 无论如何现在测试下面的解决方案。
答案 0 :(得分:1)
这是在Apache mod_rewrite中可以完成的一种方式。
首先通过httpd.conf启用mod_rewrite和.htaccess。
小一个URL需要你在httpd.conf中添加这一行并反弹Apache进程:
RewriteMap lc int:tolower
然后将此代码放在DOCUMENT_ROOT目录下的.htaccess中:
验证工作后,将R = 302更改为R = 301。
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteRule ^([^A-Z]*[A-Z].*)$ /${lc:$1} [R=302,L]
答案 1 :(得分:0)
当您打印出链接时,请使用此
echo“http://www.mydomain.com/words/?w=”。strtolower(Hej);