我已将 OpenCart 安装在托管服务器上的文件夹中。它位于文件夹而不是根目录中的原因是,我只希望登录的人能够访问商店并在购物时保持登录状态。这与登录 OpenCart 无关,因为他们也必须登录才能查看价格。我只是不想让任何人在登录之前看到商店。
我已经求助于使用 .htaccess .htpasswd 方法,该方法在某种程度上似乎工作正常。有一个弹出窗口要求您登录,当您登录时,它会将您带到一个空白页面,而不是商店。所以它在目录上工作正常,但是一旦登录,就什么也没有了。我想知道是否是因为 OpenCart 的 .htaccess 文件中有其他内容。我对这一切都很陌生,因此我不知道这些东西的作用。
问题是,OpenCart 在 .htaccess 文件中似乎隐藏了 url,因此没有转到 index.html 页面,什么也没有。
我将其添加到堆栈溢出的另一篇文章中的 .htaccess 文件中:
AuthType 基本
AuthName“禁区”
AuthUserFile /path/to/the/directory/you/are/protecting/.htpasswd
需要有效用户
我当然改变了路径。但是当这不起作用时,它说尝试添加这个:
选项索引 FollowSymLinks MultiViews
允许覆盖全部
我再次改变了路径。但后来我注意到这可能会干扰文件中已有的其他内容,例如:
## No directory listings
<IfModule mod_autoindex.c>
IndexIgnore *
</IfModule>
## No-Referrer-Header
<IfModule mod_headers.c>
Header set Referrer-Policy "no-referrer"
</IfModule>
## Suppress mime type detection in browsers for unknown types and prevent FLOC
<IfModule mod_headers.c>
Header always set X-Content-Type-Options "nosniff"
Header always set Permissions-Policy "interest-cohort=()"
</IfModule>
## Can be commented out if causes errors, see notes above.
Options +FollowSymlinks
## Prevent Directory listing
Options -Indexes
## Prevent Direct Access to files
<FilesMatch "(?i)((\.tpl|\.twig|\.ini|\.log|(?<!robots)\.txt))">
Require all denied
## For apache 2.2 and older, replace "Require all denied" with these two lines :
# Order deny,allow
# Deny from all
</FilesMatch>
## SEO URL Settings
RewriteEngine On
## If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/
RewriteBase /testing2/
## Rewrite Rules
RewriteRule ^system/storage/(.*) index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|webp|js|css|svg)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
另外,其中一些内容据说要重新启动服务器,但我无权访问。但因为我是新手,所以我不知道这些事情是否相互矛盾。如果它是一个干净的、新的 .htaccess 文件,我可以理解它会更简单,但是因为 OpenCart 的原因它已经包含了一些东西,那么也许它毕竟不是那么简单。有没有其他方法可以阻止人们看到产品,而不仅仅是 OpenCart 中的价格(这是他们的标准选项)?
我访问something.com/folder/,并收到了用户名/密码的请求,这是我通过将其放入文件中得到的:
AuthType 基本 AuthName“禁区” AuthUserFile /path/to/the/directory/you/are/protecting/.htpasswd 需要有效用户
即使没有密码保护,我也会去something.com/folder/访问OpenCart。它只会转到主页,不需要文件名或 URL。我应该在登录后告诉它具体去哪里吗?因为我尝试使用 OpenCart 中的 index.php,但它也不让我这样做。我是新手,所以我不知道登录后如何将其定向到正确的路径。我是否缺少一些将其定向到文件夹中的主页的代码?