通过htaccess配置301重定向时如何排除特定前缀的URL?
实现方法
完全可以实现该需求。你当前使用的是Apache mod_alias 模块的Redirect指令,该指令仅匹配URL路径部分,无法识别URL后的查询字符串(即?后面的内容),因此需要改用mod_rewrite模块实现重定向,同时添加排除规则即可。
完整修改后的.htaccess配置示例
# 开启rewrite引擎 RewriteEngine On # 排除所有以?sab-document开头的URL,不执行后续重定向 RewriteCond %{QUERY_STRING} ^sab-document RewriteRule ^ - [L] # 替换原有Redirect规则为rewrite格式的301重定向 RewriteRule ^index\.php$ https://new-url.com/ [L,R=301] RewriteRule ^produkt-kategorie/jewelry/armschmuck/$ https://new-url.com/produkt-kategorie/schmuck/armschmuck/ [L,R=301] RewriteRule ^produkt-kategorie/jewelry/halsschmuck/$ https://new-url.com/produkt-kategorie/schmuck/halsschmuck/ [L,R=301] RewriteRule ^produkt-kategorie/jewelry/$ https://new-url.com/produkt-kategorie/schmuck/ [L,R=301] RewriteRule ^produkt-kategorie/fashion/$ https://new-url.com/produkt-kategorie/fashion/ [L,R=301] RewriteRule ^produkt-kategorie/living/$ https://new-url.com/produkt-kategorie/living/ [L,R=301] RewriteRule ^produkt-kategorie/yoga/yogafashion/$ https://new-url.com/produkt-kategorie/yoga/yoga-kleidung/ [L,R=301] RewriteRule ^produkt-kategorie/yoga/yogamatten/$ https://new-url.com/produkt-kategorie/yoga/yoga-matten/ [L,R=301] RewriteRule ^produkt-kategorie/yoga/yoga-dvds-downloads/$ https://new-url.com/produkt-kategorie/yoga/yoga-downloads/ [L,R=301] RewriteRule ^produkt-kategorie/yoga/$ https://new-url.com/produkt-kategorie/yoga/ [L,R=301] RewriteRule ^produkt-kategorie/geschenkgutschein/$ https://new-url.com/produkt-kategorie/gutscheine/ [L,R=301] RewriteRule ^produkt-kategorie/fashion/sale-fashion/$ https://new-url.com/produkt-kategorie/sale/sale-kleidung/ [L,R=301] RewriteRule ^produkt-kategorie/jewelry/sale-jewelry/$ https://new-url.com/produkt-kategorie/sale/sale-schmuck/ [L,R=301] RewriteRule ^agb/$ https://new-url.com/agb/ [L,R=301]
注意事项
- 修改前请先备份原有.htaccess文件,避免配置错误导致站点无法访问
- 301重定向是永久缓存的,测试时请使用浏览器隐私模式,或者清空浏览器缓存后再验证规则是否生效
- 需确认Apache服务器已开启
mod_rewrite模块,大部分主流主机商默认会开启该模块,若规则不生效可联系主机商确认
内容的提问来源于stack exchange,提问作者6thSense
相关产品推荐
相关产品推荐

