2013-05-09 72 views
2

我打開我的子目錄時遇到問題。我在我的服務器的根目錄中安裝了Opencart。我還有其他一些子目錄,如腳本和頁面等。當我嘗試打開它們時,我得到了自定義的404 Opencart頁面。即使當我直接到url /子目錄/ index.php左右。Opencart的子目錄無法打開

+0

我找不到子類別,Example Ball,Big Ball,Red Ball,****不會顯示,當我鍵入「Ball,Big Ball」時它只顯示頂級類別,但是當我開始輸入Red球或***它顯示子類別如何幫助某人,花了我一小時工作,嘗試編輯代碼和很​​多閱讀, – 2017-05-20 00:13:43

回答

2

這是因爲在.htaccess文件的最後一個重寫規則:

RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] 

- 它重定向任何URL不包含問號(?)到無法路由的URL和瀑布是Opencart的路由器進入404默認頁面。

對於您的案例工作您將不得不添加RewriteCond並測試該路徑不包含子目錄的名稱。

例如,你想在/<OC_ROOT>/my_subdirectory/...運行腳本,添加此條件:

RewriteCond %{REQUEST_URI} !(my_subdirectory)\/.* 

應該是另一個your_subdirhis_subdir,您可以添加此條件:

RewriteCond %{REQUEST_URI} !(my_subdirectory|your_subdir|his_subdir)\/.* 

確保最後一條規則是在此條件之後:

RewriteBase/
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L] 
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L] 
RewriteRule ^download/(.*) /index.php?route=error/not_found [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) 
RewriteCond %{REQUEST_URI} !(my_subdirectory|your_subdir|his_subdir)\/.* # <- OUR NEW COND 
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] 

我沒有測試條件,因此希望它能工作。

+0

謝謝你,@ user2367470應該接受這個解決方案 – Nassim 2017-04-04 00:37:56