OpenCart 2.3.0.2下将/dev子目录全部重定向至主域名的技术问询
解决OpenCart 2.3.0.2下/dev子目录全量重定向到主域名的问题
嘿,我来帮你搞定这个301重定向的事儿!你之前尝试的规则方向是对的,但大概率是因为规则放置的位置不对,和OpenCart默认的.htaccess规则冲突了,才没生效。下面给你具体的操作步骤:
1. 确认.htaccess文件的位置
首先找到网站根目录下的.htaccess文件——如果是刚安装的OpenCart,可能默认是.htaccess.txt,你需要先把它重命名成.htaccess。
2. 添加正确的重定向规则
打开.htaccess文件,把重定向规则放在默认的RewriteEngine On和RewriteBase /之后,其他OpenCart自带规则之前,具体代码如下:
Options +FollowSymLinks RewriteEngine On RewriteBase / # 核心重定向规则:把所有/dev开头的URL跳转到主域名 RewriteRule ^dev/(.*)$ https://garrysun.com/ [R=301,L,NC] # 下面是OpenCart默认的规则(不用动,保留原内容即可) 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] ...(其他OpenCart默认的Rewrite规则)
规则说明:
^dev/(.*)$:精准匹配所有以/dev/开头的URL,包括/dev/本身、/dev/ayurveda-products/、带参数的/dev/ayurveda-products/categories/ayurvedic-ghee-clarified-butter?limit=15等所有情况[R=301,L,NC]:R=301:表示永久重定向,对SEO友好,搜索引擎会更新索引L:表示这是最后执行的规则,匹配后不再往下处理其他规则,避免冲突NC:不区分大小写,兼容可能出现的大写URL情况
3. 测试与注意事项
- 测试阶段可以先把
R=301改成R=302(临时重定向),避免浏览器缓存旧规则导致测试不准,确认生效后再改回301 - 确保你的服务器已经开启了
mod_rewrite模块(OpenCart运行本来就需要这个,一般都已经开启) - 如果
/dev目录下自己还有.htaccess文件,记得删掉或者禁用,防止和根目录的规则冲突
内容的提问来源于stack exchange,提问作者MattM
相关产品推荐
相关产品推荐

