2014-09-25 76 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