2014-07-21 47 views
2

比方說,我有給網站一個網站: 的index.php info.php的mod_rewrite的 - 如何保持改寫地址,而不改變HTML鏈接

爲了隱藏URL的「的index.php」的一部分並改變「info.php的」到「信息」我創建以下的.htaccess:

RewriteEngine On 
RewriteRule ^info$ info.php 
RewriteRule ^.$ index.php 

,當我直接輸入新的網址到地址欄,但裏面的index.php我有它工作得很好:

<a href="info.php"> 

所以當我點擊鏈接時,它會將我引導到信息頁面並在URL中顯示「info.php」。如果我想單擊鏈接後在URL中看到「info」,是否必須更改HTML代碼中的鏈接?或者有沒有辦法讓.htaccess文件自動執行?

回答

0

你可以把這段代碼在你的DOCUMENT_ROOT/.htaccess文件自動改變這些鏈接:

RewriteEngine On 
RewriteBase/

# To externally redirect /dir/file.php to /dir/file 
RewriteCond %{THE_REQUEST} \s/+(?:index)?(.*?)\.php[\s?] [NC] 
RewriteRule^/%1 [R=301,L,NE] 

# To internally forward /dir/file to /dir/file.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC] 
RewriteRule ^(.+?)/?$ /$1.php [L] 

但強烈建議改變你的HTML頁面這些鏈接,以避免一個外部重定向。