現在很多php程式都使用了url重寫技術來優化url,但是有時候我們要在php程式中區分預設url的請求和url重寫後的請求,這該如何處理呢?
我的解決方案是在常量$_server裡面找答案,在不同的伺服器中$_server都會有乙個索引用來記錄重寫請求訪問重寫之前的路徑,部分主流伺服器的索引如下
apache2 -> $_server['request_uri』] 或 $_server['redirect_url']
nginx -> $_server['request_uri』]
因此得出的結果是,只要判斷 http_x_original_url, http_x_rewrite_url, request_uri, redirect_url 這些引數,我們就可以在php中來判斷請求url來自於重寫位址的還是預設格式的位址了。
注:關於url重寫
url 重寫是擷取傳入 web 請求並自動將請求重定向到其他 url 的過程。
比如瀏覽器發來請求hostname/101.aspx ,伺服器自動將這個請求中定向為http://hostname/list.aspx?id=101。
url重寫的優點在於:
縮短url,隱藏實際路徑提高安全性
易於使用者記憶和鍵入。
易於被搜尋引擎收錄
慎用url重寫
為了使 url位址更加友好 當然可能有別的原因 很多站點使用了 url重寫,如http www.cnblogs.com life,在asp.net中通常要處理這樣的 url重寫,必須在iis中將 對映到aspnet isapi.dll c windows microsoft.net framewor...
url重寫技術
注釋掉 條目,以使用 http 模組執行重寫 注釋掉 條目,以使用 http 處理程式執行重寫。除了指定使用 http 模組還是 http 處理程式執行重寫外,web.config 檔案還包含重寫規則 重寫規則由兩個字串組成 要在被請求的 url 中查詢的模式 要替換此模式的字串 如果找到 在 we...
慎用url重寫
為了使url位址更加友好 當然可能有別的原因 很多站點使用了url重寫,如 http www.cnblogs.com life,在asp.net中通常要處理這樣的url重寫,必須在iis中將 對映到aspnet isapi.dll c windows microsoft.net framework ...