打开子目录时遇到问题。我在我的服务器的根目录中安装了Opencart。我有一些其他子目录与脚本和页面等其他东西。当我尝试打开它们时,我会获得自定义404 Opencart页面。即使我直接指向url / subdirectory / index.php左右。
答案 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_subdir
和his_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]
我没有测试病情因此希望它能起作用。