首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用RewriteMap减少重定向

用RewriteMap减少重定向
EN

Stack Overflow用户
提问于 2019-09-12 07:35:00
回答 1查看 119关注 0票数 0

我在一个文件中有一个RewriteMap,并且想要处理(忽略)可选的尾随奴隶。我想尽量减少尾随斜杠的重定向次数。如何更改apache-config?

配置:

代码语言:javascript
复制
<VirtualHost *:80>
ServerName redirtest.localhost
RewriteEngine on

RewriteMap test "txt:/tmp/redirects.txt"  #/old   /new
RedirectMatch ^/(.*?)/$ /$1
RewriteCond %{REQUEST_URI}           ^(.*)$
RewriteCond ${test:%1|NOT_PRESENT}  !NOT_PRESENT [NC]
RewriteRule .?                       ${test:%1} [NC,R=301]

结果(确定):

代码语言:javascript
复制
curl -sIL 'http://redirtest.localhost/old?key=val&somemore=foobar' |grep Location 
Location: http://redirtest.localhost/new?key=val&somemore=foobar

以下是工作,但我想避免中间重定向:

代码语言:javascript
复制
curl -sIL 'http://redirtest.localhost/old/?key=val&somemore=foobar' |grep Location
Location: http://redirtest.localhost/old?key=val&somemore=foobar
Location: http://redirtest.localhost/new?key=val&somemore=foobar
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-12 15:21:07

试试这个:

代码语言:javascript
复制
RewriteMap test "txt:/tmp/redirects.txt" 
RewriteCond %{REQUEST_URI}           ^(.*\w)/?$
RewriteCond ${test:%1|NOT_PRESENT}  !NOT_PRESENT [NC]
RewriteRule .?                       ${test:%1} [NC,R=301]
RedirectMatch ^/(.*?)/$ /$1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57901838

复制
相关文章

相似问题

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