0

我想强制使用小写 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 中运行良好,但谷歌在重定向上添加了延迟 - 无论如何现在测试下面的解决方案。

4

2 回答 2

1

这是可以在 Apache mod_rewrite 中完成的一种方法。

  1. 首先通过 httpd.conf 启用 mod_rewrite 和 .htaccess。

  2. 小写 URL 需要您在 httpd.conf 中添加这一行并退回 Apache 进程:

    RewriteMap lc int:tolow

  3. 然后将此代码放在 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]
于 2013-05-14T22:35:14.023 回答
0

当您打印出链接时,请使用此链接

echo " http://www.mydomain.com/words/?w= ".strtolower(Hej);

于 2013-05-14T22:37:12.593 回答