首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >htaccess int:tolower多次重定向

htaccess int:tolower多次重定向
EN

Stack Overflow用户
提问于 2021-09-16 07:04:21
回答 1查看 26关注 0票数 1

我已经用以下命令激活了虚拟主机中的RewriteMap:

代码语言:javascript
复制
RewriteEngine On
RewriteMap lc int:tolower

..。然后在htacess中扮演这个角色:

代码语言:javascript
复制
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule . ${lc:%{REQUEST_URI}} [R=301,L]

..。但是让我多次重定向,不要每次都把我的REQUEST_URI重定向到/。

我不知道为什么没有得到它(在我以前的托管工作很好),如果有人有一个想法,可以帮助?我会很高兴的,提前谢谢你!

EN

回答 1

Stack Overflow用户

发布于 2021-09-16 22:25:17

规则本身实际上没有什么“错误”,但是,我怀疑您与在内部重写URL的其他指令存在冲突(这可能会在文件中稍后发生)。REQUEST_URI服务器变量在重写URL时被修改,因此在随后通过重写引擎时不一定包含最初请求的URL。

为了确保规则只在初始请求上处理,而不是重写的请求,我们可以检查REDIRECT_STATUS环境变量,该变量在初始请求时为空,并在第一次成功重写后设置为(string)200 (如200OK状态)。

例如:

代码语言:javascript
复制
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule [A-Z] ${lc:%{REQUEST_URI}} [R=301,L]

REQUEST_URI进行检查的原始条件是不必要的,因为在RewriteRule指令本身中可以更有效地执行同样的检查。

在进行任何现有重写之前,您还应该确保此规则位于.htaccess文件的顶部附近,因为我们仍然在替换字符串中使用REQUEST_URI

在测试之前,您需要确保您的浏览器缓存已清除,并首先使用302 (临时)重定向进行测试,以避免潜在的缓存问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69203790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档