2013-12-10 46 views
1

我一直在檢查文檔,堆棧溢出和谷歌幾個小時。此外,還有一些IRC頻道。如何在我的網站上刪除文件擴展名的要求

在編輯這些文檔時,我是一個非常大的新手,因此請耐心等待。 我的意思是,當你說'httpd.conf'時,我已經找到它了。它不存在。所以,請告訴我它是否真的是apache2.conf或文件名是什麼。

因此,我從Ubuntu切換到Kali Linux。我一直在開發一個網站,直到現在,我從來沒有必要將.php添加到我的網址的末尾。然而,現在,看起來突然間,如果沒有包含404,我就會得到。

example: This is what I have to do 

[URL: localhost/videos.php] 

This is what I want to do 

[URL: localhost/videos] 

我該如何解決這個問題?

我已經試過的東西:

在國內外享有多個DIR塊:

[/phpmyadmin/apache.conf] 
Options Indexes FollowSymLinks Multiviews 

[.htaccess] 
mod_rewrite just causes E_500's left and right. 

[/apache2/mods-available/php5.conf] 
[*] mod_rewrite 
[*] Options Multivews 

這將是極爲賞識,如果有人可以幫助我, 我已經和它打交道整天,我需要得到這個工作 ,所以我可以完成項目的其餘部分。

[編輯:一個實際的答案與我的帖子在一個沒有幫助的方式搞亂。嘗試的第一個,而不是下一次。]

+1

''mod_rewrite'在'Apache'中被激活? – Noor

+0

您可以編輯問題標題並將其更改爲更具描述性的內容嗎? –

+0

嘗試在.htaccess之上添加「Options + MultiViews」行,然後重新測試。 – anubhava

回答

0

我猜你的服務器上的文件有.php擴展,並且有一個文件處理程序的地方,通過PHP拉這些頁面。我也猜測如果你的www-root中有一個文件test.php,你仍然可以通過去example.com/test.php來訪問它。

首先確保mod_rewrite已在您的服務器配置中啓用。 mod_rewrite.so必須在正確的文件夾中,並且行LoadModule rewrite_module modules/mod_rewrite.so(或類似的東西)應該被取消註釋。確保在更改主配置文件時重新啓動Apache。那些在啓動時加載,而不是像.htaccess那樣動態執行。確保在www-root中的.htaccess中啓用了FollowSymLinks選項。 AllowOverride必須至少在您的httpd.conf(或作爲主配置文件的任何功能)中設置爲FileInfo

然後這個規則應該工作。它測試文件是否不以文件擴展名結尾,並在內部將其重寫爲追加.php的同一文件。

RewriteCond %{REQUEST_URI} !\.[a-z]+$ 
RewriteRule ^(.*)$ /$1.php [L] 

如果仍然出現內部服務器錯誤,請查看您的Apache錯誤日誌。它會告訴你到底發生錯誤之前發生了什麼。

+0

時,它仍然會出現404這不完全是我在找的朋友。我在頂部做了一個編輯,但基本上[localhost/videos]是404,因爲沒有具體的放置[localhost/videos.php]。 – Kashire

+0

我想你想編輯重寫來排除已經結束的URL。否則,@DouglasHarding這是你需要的。 – aross

+0

這仍然造成500錯誤。我剛剛發現如何打開AllowOverride ALL,這並沒有真正解決任何問題。 – Kashire

相關問題