Drupal中URL末尾加斜杠重定向生效,无斜杠则失效问题求助
Drupal Redirect模块无斜杠URL不生效的解决办法
问题核心
Drupal默认将带斜杠与不带斜杠的URL视为不同路径,加上Redirect模块的匹配逻辑默认严格区分两者,导致仅带斜杠的路径能触发重定向规则。
具体解决方法
调整Redirect模块匹配设置
进入模块配置页面(路径:/admin/config/search/redirect/settings),找到「URL匹配」相关选项,勾选「忽略末尾斜杠」(不同版本表述可能略有差异),保存后模块会将带斜杠和不带斜杠的路径视为同一目标,触发重定向。启用Drupal URL规范化
进入站点信息配置页(/admin/config/system/site-information),开启「自动规范化URL」选项,Drupal会自动将不带斜杠的URL重定向到带斜杠的版本,间接适配Redirect模块的规则。手动添加双向重定向规则
如果上述设置无效,可手动创建两条重定向规则:- 源路径:
/a/b→ 目标路径:/b/c - 源路径:
/a/b/→ 目标路径:/b/c
确保两条规则均启用,覆盖两种路径场景。
- 源路径:
检查Apache的.htaccess配置
打开站点根目录的.htaccess文件,若存在强制添加末尾斜杠的规则,需调整执行顺序或修改规则,让不带斜杠的路径先被Redirect模块处理。例如可暂时注释以下规则(修改前请备份文件):RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*)$ $1/ [L,R=301]
内容的提问来源于stack exchange,提问作者Prithviraj Mitra
相关产品推荐
相关产品推荐

