我試圖在我的.htaccess文件中使用mod_rewrite
來清理我的URL。如何將file.php重定向到文件,但使文件指向file.php?
比方說,我有我的服務器上的以下文件:
/about.php
/contact.php
如果用戶鍵入about
或contact
,我想about.php
或contact.php
要顯示給用戶,但確保網址保持不變(即它都發生在服務器端)。同樣,如果用戶輸入about.php
或contact.php
,我希望它301重定向到about
或contact
,然後它將拉頁面服務器端,同時保持一個漂亮的URL。
我迄今爲止嘗試:
RewriteEngine on
RewriteRule about about.php
RewriteRule contact contact.php
RewriteRule about.php about [R]
RewriteRule contact.php contact [R]
,結果在一個圓形的重定向循環。
而且反過來:
RewriteEngine on
RewriteRule about.php about [R]
RewriteRule contact.php contact [R]
RewriteRule about about.php
RewriteRule contact contact.php
這是功能性的,但重定向不能正常工作(網址保持不變)。
我該怎麼做才能讓我沒有重定向循環,但是我的頁面都會指向沒有.php
的版本?
注:我知道[R]
是302不是301,但我使用302進行測試。
不是一個真正的PHP問題 - 但請記住爲您的重定向輸入分隔符,即。^about/$否則所有與'about'有關的東西都會重定向到about.php(例如about/xyz /將重定向到about.php)。另外發現你想把'/ about /'重定向到'about.php'有點奇怪,但是你也想把'about.php'重定向到'/ about /' - 好像只是繞着圈子走。 .. – MrJ 2012-02-12 16:21:30
@MrJ我不想將'/ about'重定向到'/ about.php' - 我想讓apache簡單地顯示'about.php'作爲'about' – 2012-02-12 16:24:53
他們希望當你瀏覽到/ about/about.php腳本在沒有轉發的情況下執行。除了不讓他們直接瀏覽到about.php – 2012-02-12 16:30:18