2012-09-09 18 views
7

我按照說明here創建了一個測試hello world Slim應用程序。當在網址中省略index.php時,在Slim Framework中始終得到404錯誤

當我撥打這個電話,我得到一個404錯誤:

http://my_server/my_app/hello/John 

在另一方面,當我把這個稱之爲它的工作原理隆重,因爲我得到一個「Hello約翰」消息:

http://my_server/my_app/index.php/hello/John 

但是,當然,我不想index.php在我的網址...什麼可能是錯的?

======= =======編輯

我忘了創建這樣的.htaccess文件(以下超薄框架文件,並在同一個目錄中的index.php):

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [QSA,L] 

現在我得到這個錯誤:

/physical_path_to_my_files/index.php was not found on this server 
+1

你有一個'mod_rewrite'或一些其他的服務器技術相關的設置去,或者這只是.. 。你建議如何? –

+1

例如:http://expressionengine.com/wiki/Remove_index.php_From_URLs/ –

+0

謝謝@JaredFarrish。我編輯了我的文章:忘了添加.htaccess文件,現在我得到一個不同的錯誤,:-( –

回答

15

如果你的htaccess文件是在你的/my_app目錄,改變你的規則:

RewriteEngine On 

RewriteBase /my_app/ 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [QSA,L] 

如果它在你的文檔根目錄下,你需要附加的路徑:

RewriteRule^/my_app/index.php [QSA,L] 
+0

輝煌!我將RewriteBase值設置爲/ my_app /,並且像魅力+1一樣工作! –

+0

謝謝!我甚至不能猜到它。這麼愚蠢的錯誤..: - | –

5

也可以改變的.htaccess到以下幾點:(我也有類似的問題,這解決了這個問題對我來說) :

的.htaccess:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 

RewriteRule ^(.*)$ %{ENV:BASE}index.php [QSA,L] 
+0

工作過的魅力!與OP有同樣的問題,這有所幫助。謝謝。 – Aleski

1

如果喬恩·林的解決方案不起作用,意味着你的.htaccess文件無法正常工作。 您可以驗證我的添加無用線像

RewriteEngine On 
RewriteBase /loop/v1/ 

This is garbage line 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [QSA,L] 

這將產生503錯誤的.htaccess是否工作正常,否則你不會得到任何錯誤。

如果您沒有收到任何錯誤,請更改Allow none以允許所有在Apache conf文件或Httpd的Directory部分中。CONF

相關問題