2012-05-02 46 views
0

我想創建htaccess的規則來重命名我的網頁,例如:如何使用htaccess的重命名頁和刪除擴展,而不會影響CSS或JS外部文件

我想這domain.com/page1實際打開頁面domain.com/content?p=page1或 domain.com/page2實際上是打開的頁面domain.com/content?p=page2

爲了這個,我有一個非常簡單的正則表達式:

RewriteRule (.*)$ /content.php?p=$ [L] 

現在的問題是這會影響一切,甚至像s一樣的文件tyles.css或functions.js等,甚至是images/logo.jpg。

所以,我在找的是一個正則表達式將轉發我的所有網頁,如果他們沒有點或斜槓(/)

例如(。):

domain.com/blog true 
domain.com/home?lang=en true 
domain.com/styles.css false 
domain.com/image.png false 
domain.com/folder/file false 

謝謝!

回答

0

請參見下面的代碼:

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 

    RewriteRule ^(.*)$ content.php?p=$1 [L,QSA] 
</IfModule> 

如果請求的URL不是一個目錄,而不是一個文件,將下一行執行。

乾杯!

0

這是你需要把你的.htaccess文件中的代碼:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^([^/.]+)/?$ content.php?p=$1 [L,QSA] 
+0

什麼是-L呢?謝謝 – multimediaxp

+0

'!-l'是爲了避免RewriteRule,如果請求的URI是一個**有效的鏈接**。 – anubhava

相關問題