2014-09-25 36 views
1

我最近更改了我正在开发的站点上的查询字符串中的URL参数,并且需要PHP中的一种有效方式来重定向所有包含查询字符串的搜索引擎索引链接他们从大写格式转换为小写格式。如何在PHP中将大写url查询字符串重定向为小写

这里有一个例子:

http://computerhelpwanted.com/jobs/?occupation=Director&position=IT+Director 

通知的查询字符串参数如何在大写的第一个字母,除了这个词,是全部大写。我需要重定向到现在使用的URL的小写版本。

我尝试了一个htaccess + PHP的工作,但它造成了太多的问题。如果您有兴趣查看该脚本,请点击此链接。 https://www.simonholywell.com/post/2012/11/force-lowercase-urls-rewrite-php.html以及当我遇到问题时的问题stackoverflow PHP htaccess Redirect url with query string from uppercase to lowercase

所以对于这个问题,如果可能我只想坚持一个纯PHP的方式做到这一点。除非你知道在没有使用httpd.conf或映射或mod拼写的情况下使用htaccess的方式,因为我无法访问它。

所有帮助表示赞赏!

回答

2

你可以尝试这样的:

if ($_SERVER['REQUEST_URI'] != strtolower ($_SERVER['REQUEST_URI'])) 
    header ('Location: //' . $_SERVER['HTTP_HOST'] . strtolower ($_SERVER['REQUEST_URI'])); 

这将重定向到URI的小写版本只有当它是不是已经在较低的情况下。 //在开始处被浏览器替换为实际的url模式。

+0

这一个工作,除了尾部//你放在开始使得url结构在目录后面有2个尾部斜线。 Georg使用了preg_match [A-Z]。哪个会更快,你的方式还是他的? – Mike 2014-09-25 16:36:50

+0

我不明白你在'目录后'的意思。所有主流浏览器都支持这个双斜杠,但我只是知道它是(哦,惊喜)[在IE中破解](http://www.paulirish.com/2010/the-protocol-relative-url/)。另外,我认为RegExp比简单的字节比较慢。 – drmad 2014-09-26 18:21:33

+0

我使用您的建议,因为它更简单并且重要。我的意思是在目录之后,文件夹,在这个例子中是/ jobs //。这很奇怪。 – Mike 2014-09-27 04:51:01