2013-05-09 50 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