【问题标题】:Can't open subdirectory with Opencart无法使用 Opencart 打开子目录
【发布时间】:2017-05-20 08:13:43
【问题描述】:

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

【问题讨论】:

  • 我找不到子类别,例如 Ball, Big Ball, Red Ball, **** 当我输入“Ball, Big Ball”时不会显示它只会显示顶级类别,但是当我开始输入 Red ball 或 *** 时,它显示了子类别这对某人有何帮助,花了我一个小时来锻炼,尝试编辑代码和大量阅读,

标签: opencart subdirectory


【解决方案1】:

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

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

- 它将任何不包含问号 (?) 的 URL 重定向到该 OpenCart 路由器,该路由器无法路由 URL 并进入 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]

我没有测试条件,因此希望它会起作用。

【讨论】:

    猜你喜欢
    • 2012-08-06
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    • 2018-08-23
    相关资源
    最近更新 更多