无法使用Opencart打开子目录

时间:2013-05-09 18:20:23

标签: opencart subdirectory

打开子目录时遇到问题。我在我的服务器的根目录中安装了Opencart。我有一些其他子目录与脚本和页面等其他东西。当我尝试打开它们时,我会获得自定义404 Opencart页面。即使我直接指向url / subdirectory / index.php左右。

1 个答案:

答案 0 :(得分:2)

这是因为.htaccess文件中的最后一次重写规则:

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

- 它将任何不包含问号(?)的URL重定向到无法路由URL并进入404默认页面的OpenCart路由器。

为了使你的工作能够工作你必须添加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]

我没有测试病情因此希望它能起作用。