2015-11-25 80 views
0

我有一個簡單的CMS文件結構:的.htaccess - 如果重定向文件或目錄不存在

application/ 
data/ 
src/ 
web/ 
.htaccess 
index.php 

我想如果存在文件或目錄重定向所有請求的index.php execept,那麼我想全部重定向到/ web。 例子: http://localhost.com/news/example-news到index.php/ http://localhost.com/images/logo.png到網頁/圖像/ logo.png

現在我的.htaccess的樣子:.htaccess

+0

沒有,因爲我需要的,如果文件存在 – Grzegorz

+0

你應該總是粘貼代碼中的問題,而不是鏈接到的設置目錄/網絡爲主它。儘可能少地使用外部網站。 –

回答

2

嘗試......

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ /web [L] 

RewriteRule ^.*$ index.php [L] 

的第一條規則將捕獲任何可以映射到現有文件或目錄並重寫到Web文件夾的請求。第二條規則(沒有rewritecond)會捕獲剩餘的並重寫index.php

1

你只需要改變你的代碼看起來像這樣。

改變這種

RewriteCond %{REQUEST_URI} !^/index.php 

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

RewriteRule ^(.*)$ index.php [NC,L] 
RewriteRule ^(/)?$ index.php [L] 

這個

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteCond %{REQUEST_URI} !^/index.php 
RewriteRule ^(.*)$ /web/index.php [L] 

RewriteRule ^(.*)$ index.php [NC,L] 
相關問題