2015-12-02 20 views
0

我使用一個htaccess重寫點擊時改變一個名爲cities.php到鏈接城市頁面頁面的名稱。例如,如果被點擊阿里索維耶荷的鏈接,你會看到:

加利福尼亞Aliso,Viejo的板坯泄漏-detection.php

我的htaccess的重寫部分如下:

RewriteEngine On 
    RewriteBase/
    RewriteCond %{HTTP_HOST} !^$ 
    RewriteCond %{HTTP_HOST} !^www\. [NC] 
    RewriteCond %{HTTPS}s ^on(s)| 
    RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301] 
    RewriteRule ^([a-z]+)-slab-leak-detection.php$ cities.php?city=$1&state=$2 
    RewriteRule ^([a-z-]+)-slab-leak-detection.php$ cities.php?city=$1&state=$2 
    RewriteRule ^(.*)\.html$ $1.php [L] 
    ErrorDocument 404 /index.php 

現在,作爲旨在重寫工作。問題在於我正在使用的規範鏈接:

$_SERVER['PHP_SELF'] 

回顯頁面URL以進行索引。相反呼應重寫頁面名稱是呼應原來cities.php名。搜索引擎也索引預改寫頁爲好。

我假設我在錯誤的順序代碼或沒有它編碼正確默默的,而不是動態的書寫。

請記住我與先進httaccess編碼和我用的代碼是從變化的信息我已經研究很陌生。

任何幫助,非常感謝。

回答

0

我不認爲$_SERVER['PHP_SELF']值被重寫的.htaccess的影響,因爲它引用文件系統,而不是URL。

如果您需要引用URL,使用$_SERVER['REQUEST_URI']

編輯

剛剛發現此相關的問題/回答:Can PHP access the .htaccess rewrite name of a file。 Regilero對所選答案的評論使有關輸出之前逃脫的$_SERVER['REQUEST_URI']值好點:

當心,你應該逃避$ _ SERVER [「REQUEST_URI」]用建立HTML內容,避免用戶注入HTML前/ js在url中。有關SCRIPT_NAME的詳細信息,請參閱stackoverflow.com/a/326331/550618與REQUEST_URI

+0

我使用了<?php echo htmlentities($ _ SERVER ['REQUEST_URI']);它的工作完美。非常感謝。 –