2017-10-16 88 views
1

我想從我的網址中刪除.php擴展名。問題是我的一些文件夾與我的一些頁面共享相同的名稱。例如,我有一個名爲「materiel」的文件夾和一個名爲「materiel.php」的頁面。我發現這段代碼的解決方案:重寫網址離線工作,但不在線

Options -MultiViews 

RewriteEngine On 

# Manually re-route materiel/ requests to materiel 
RewriteCond %{REQUEST_FILENAME} materiel/$ 
RewriteRule ^(.*)/$ $1 

# Hide extension 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

它正常工作在我的網站的本地版本,但不能上網(它導致一個錯誤頁)。我已經嘗試在我的代碼中添加Options -MultiViews和DirectorySlash Off,但沒有成功。我的主機是1 & 1.也許有人已經遇到過這樣的問題?

在此先感謝您的任何答案。

+2

是否在您的服務器上啓用了mod_rewrite? – Pauloscorps

+0

錯誤頁面說什麼? – kerbholz

+0

我認爲mod_rewrite已啓用,因爲重寫適用於所有不與文件夾共享同一名稱的頁面。錯誤頁面只是我創建的404.php。 – ekno

回答

0
Options -MultiViews 

RewriteEngine On 
RewriteBase/

# Manually re-route materiel/ requests to materiel 
RewriteCond %{REQUEST_FILENAME} materiel/$ 
RewriteRule ^(.*)/$ $1 

# Hide extension 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

嘗試將RewriteBase設置爲您的基礎目錄。

+0

感謝您向我展示要採取的措施。由於我在我的服務器根目錄中創建了一個文件夾,所以我必須編寫RewriteBase //。現在所有工作都很好! – ekno

0

要排除被重寫的目錄,你可以添加

RewriteCond %{REQUEST_FILENAME} !-d 

爲你重寫條件之一。