我一直在測試環境中爲客戶做一些URL重寫,在我的環境中工作正常,但是當我移動到他們的時候,我得到不同的結果並且規則失敗。301重定向規則在不同的託管環境中給出了不同的結果
我在下面的格式301個重定向遺留的動態網址:
http://www.companyname.com/page.php?pagename=AboutCompany&lang=EN
to
http://www.companyname.com/EN/about-company/
使用規則集低於這個作品在我的「心互聯網」共享主機正常,但無法對他們的「去爸爸」共同主辦(CONFIGS下面)。在Go Daddy環境中,遺留網址被重定向到:
http://www.companyname.com/GET/about-company/
instead of
http://www.companyname.com/EN/about-company/
'GET'來自哪裏?這是一個沒有其他代碼影響這些規則的準系統頁面。
RewriteCond %{QUERY_STRING} pagename=AboutCompany
RewriteCond %{QUERY_STRING} lang=([^&]+)
RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /page.php
RewriteRule ^page.php$ /%1/about-company/? [R=301,L]
RewriteRule ^([A-Za-z]+)/about-company$ page.php?pagename=AboutCompany&lang=$1 [NC,L]
RewriteRule ^([A-Za-z]+)/about-company/$ page.php?pagename=AboutCompany&lang=$1 [NC,L]
的 '郎' 的查詢字符串取決於不同的用戶語言偏好(EN或FR或DE等)
測試環境:
的Windows
IIS7.5
PHP 5.3.6
客戶環境:
Linux的
阿帕奇
PHP 5.2
感謝,M.
IIS的重寫引擎是不一樣的Apache的 – 2012-07-17 11:44:49
嗨喬恩,謝謝,我知道他們是不同的,因此wh我列出了環境。不過,我想知道如何在apache環境中獲得相同的行爲。 – MonkeeX 2012-07-17 11:52:47