HTTPS重定向规则求助:多动态子路径URL跳转异常
解决特定路径的HTTP到HTTPS重定向问题
嘿,我来帮你搞定这个重定向的问题!你现在用的规则是全局的HTTP转HTTPS,但看起来你只需要针对name.co/othername/开头的动态URL(比如xname、yname这类后缀)进行重定向,那咱们可以把规则限定在特定路径上,这样更精准,也不会影响其他不需要重定向的请求。
修正后的重定向规则
把你现有的规则替换成下面这个:
RewriteEngine On # 仅对 /othername/ 开头的HTTP请求执行HTTPS重定向 RewriteCond %{HTTPS} !on RewriteRule ^/othername/(.*)$ https://%{HTTP_HOST}/othername/$1 [R=301,L]
规则细节说明
^/othername/(.*)$:这个正则表达式专门匹配所有以/othername/开头的请求路径,其中(.*)会精准捕获后面的动态内容(比如你的xname、yname)[R=301,L]:R=301代表永久重定向,对搜索引擎SEO友好;L表示这是最后一条执行的规则,匹配后就不再处理后续规则。如果只是临时测试,可以换成R=302临时重定向。
排查小技巧
如果替换后还是不符合预期,可以检查这几点:
- 确认你的Apache服务器已经启用了
mod_rewrite模块(可以用a2enmod rewrite命令开启,之后重启服务器生效) - 确保规则放在正确的位置:如果用
.htaccess,要放在网站根目录,并且服务器允许.htaccess生效;如果是服务器配置文件,要放在对应的<VirtualHost *:80>块里 - 清除浏览器缓存,因为之前的错误重定向可能被缓存了,导致新规则不生效
- 如果还有其他Rewrite规则,把这条重定向规则放在最前面,避免被其他规则提前拦截
内容的提问来源于stack exchange,提问作者Torben G
相关产品推荐
相关产品推荐

