OpenCart后台/admin页面跳转异常无法登录求助
我明白你现在遇到的OpenCart后台访问困境:当你访问https://mywebsite.com/admin时,URL保持不变,但页面却加载了店铺首页,而且重命名.htaccess文件后问题依然存在。咱们一步步来排查解决:
先检查配置文件的URL设置
首先确认根目录的config.php和后台目录的admin/config.php里的URL配置是否准确。这两个文件里的HTTPS_SERVER(后台配置里的)和HTTPS_CATALOG必须严格对应你的后台和店铺地址,末尾的斜杠不能少也不能多。比如admin/config.php里应该是这样:define('HTTPS_SERVER', 'https://mywebsite.com/admin/'); define('HTTPS_CATALOG', 'https://mywebsite.com/');要是这里写错了,服务器就会找不到正确的后台路由,直接跳转到首页。
重新配置.htaccess文件
虽然你已经重命名过.htaccess,但可能默认的规则有问题。你可以创建一个包含OpenCart标准重写规则的新.htaccess,同时保留cPanel生成的PHP handler(毕竟这是指定PHP版本的关键),完整内容如下:php -- BEGIN cPanel-generated handler, do not edit AddType application/x-httpd-ea-php56 .php .php5 .phtml php -- END cPanel-generated handler, do not edit # OpenCart SEO URL Rewrite Rules Options +FollowSymlinks Options -Indexes # 禁止直接访问敏感文件 <FilesMatch "(?i)((\.tpl|\.twig|\.ini|\.log|(?<!robots)\.txt))"> Require all denied </FilesMatch> RewriteEngine On RewriteBase / RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L] RewriteRule ^googlebase.xml$ index.php?route=extension/feed/google_base [L] 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|js|css) RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]替换掉原来的.htaccess后,再尝试访问后台。
验证PHP版本兼容性
你当前用的是PHP 5.6,得确认这个版本和你的OpenCart版本匹配。比如OpenCart 3.x及以上版本要求PHP 7.0+,如果你的店铺是3.x版本,PHP 5.6会导致兼容性问题,出现这种加载异常。可以联系主机商把PHP版本升级到7.4(稳定且兼容性好的版本),然后测试。清理缓存和Cookie
有时候浏览器缓存或者残留的Cookie会干扰路由判断,试试用无痕模式打开后台页面,或者手动清除浏览器的缓存、Cookie。另外别忘了清理OpenCart的服务器缓存:删除system/storage/cache目录下的所有文件(保留index.html就行)。检查文件权限
后台目录的文件权限不对也可能导致这个问题。一般来说,文件夹权限设为755,文件权限设为644就可以。如果权限过高或过低,服务器可能无法正确读取后台的路由文件,从而默认跳转到首页。
内容的提问来源于stack exchange,提问作者Jorge Silva

