2015-05-07 227 views
-1

我有一個網址http://example.com/pages.php/page-name,我想刪除pages.php部分上的.php擴展名...這可能與.htaccess文件或者我應該放棄嗎?刪除URL內的.php擴展名

我試過RewriteRule ^(.+)\.php/(.+)$ $1/$2從「Remove php extension from url」沒有運氣。

我是新來的.htaccess文件(這是我的正常把戲不工作的第一站點)

+0

這是非常有可能的,重寫規則會這樣做 – adeneo

+0

這些文件實際上是在一個目錄/文件夾名稱pages.php中嗎?如果是這樣,是否有一個原因,你不能重命名爲網頁? – kainaw

+0

它們實際上不在目錄中。它只是從數據庫中提取頁面內容並使用pages.php來渲染它。通常我可以只使用「頁面」文件而不用擴展名來渲染頁面,但是這個服務器不會讓鏈接正常工作。 – jay013

回答

0

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代碼:

RewriteEngine On 
RewriteBase/

# external redirect from actual URL to pretty one 
RewriteCond %{THE_REQUEST} \s/+([^/.]+)\.php/(\S+)\s [NC] 
RewriteRule^%1/%2? [R=302,L,NE] 

# internal forward from pretty URL to actual one 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/.]+)/([^/]+)/?$ $1.php/$2 [L,NC] 
+0

謝謝,那種工作...但css&js文件不再加載。仍在尋找解決方案。 – jay013

+0

由於您使用相對路徑,css/js不工作。爲了解決這個問題,你可以在頁面的HTML:''的''部分添加它,這樣每個**相對URL **都可以從該基本URL而不是從當前頁面的URL 。 – anubhava

+0

所有路徑已經使用斜線從baseURL解析。 – jay013