2015-02-06 17 views
0

我正在編寫我的新RaspberryPi。我試圖用.htaccess從名爲'greet'的文件中刪除.php文件。.htacccess簡單重寫刪除文件擴展名不起作用 - 給404錯誤找不到

我安裝的Apache2: 「sudo易於得到安裝的Apache2
使用啓用重寫模塊:」 須藤a2enmod重寫
我也改變重寫標準的網站CONFIGS許可

。我知道我的重寫模塊的工作,因爲我嘗試了以下它:

RewriteEngine On 
RewriteRule ^greet.html$ greet.php 


成功地再導向將192.168.0.123/greet.html改爲192.168.0.123/greet.php。


但是下面的代碼刪除.php後綴似乎並沒有爲我工作:

RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^([^\.]+)$ $1.php [NC,L] 


當我鍵入http://192.168.0.123/greet到我的瀏覽器我沒有得到greet.php文件。相反,我最終在 404未找到頁面。


我搞不​​清楚我做錯了什麼。

回答

0

你可以用這種方式試試你的規則。

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^([^/.]+)$ $1.php [NC,L] 
+0

謝謝。巴拿馬傑克。我試過了。仍然得到相同的錯誤。 - 當我訪問http://192.168.0.123/greet時未找到 – user2646237 2015-02-06 23:19:46

+0

嘗試並清除瀏覽器緩存,然後使用這些規則重試。 – 2015-02-07 03:45:01

+0

我試着清除我的瀏覽器緩存。不幸的是,這並沒有解決問題。感謝您的建議! – user2646237 2015-02-07 23:01:39

0

爲什麼你不使用multiviews來處理這個問題?如果你沒有很多複雜的重寫規則,你可以讓mod_negotiation爲你處理這些擴展。只需打開它

Options +Multiviews 
+0

我很抱歉。我試過了。它沒有工作。 Options + Multiviews RewriteEngine On RewriteCond%{REQUEST_FILENAME}!-f RewriteRule ^([^ \。] +)$ $ 1.php [NC,L] – user2646237 2015-02-06 22:51:59

+0

@ user2646237您不需要重寫規則,multiviews負責那對你來說 – 2015-02-06 23:26:01

+0

我明白了。對不起。我試過了,仍然沒有解決問題! – user2646237 2015-02-06 23:33:56

相關問題