首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >htaccess 301重定向到重写规则

htaccess 301重定向到重写规则
EN

Stack Overflow用户
提问于 2013-02-06 16:18:50
回答 2查看 470关注 0票数 0

我知道这附近一定有答案,但我找不到。

在同一个域中有一个典型的301重定向规则:

代码语言:javascript
复制
Redirect 301 /path/to/strange-url.htm /path/to/new/canonical-url.htm

在稍后的htaccess文件中,有一个针对canonical-url的重写规则

代码语言:javascript
复制
RewriteRule ^([^/]+)/([^/]+)([^/]+)/([^-]+)-([^.]+)\.htm$ php/page.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5 [NC,L]

问题是,一旦301重定向激活,我的新url就会变成:

代码语言:javascript
复制
/path/to/new/canonical-url.htm?var1=xxxx&var2=xxxx&var3=xxxx&var4=xxxx&var5=xxxx

如何才能避免这种情况,并且只维护干净的url:/path/to/new/canonical-url.htm呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-06 23:06:16

好的,我终于找到了一个可行的解决方案

我将所有重定向301规则更改为RewriteRule R=301,L,因此:

代码语言:javascript
复制
Redirect 301 /path/to/strange-url.htm /path/to/new/canonical-url.htm

变成了

代码语言:javascript
复制
RewriteRule ^/path/to/strange-url.htm http://www.example.com/path/to/new/canonical-url.htm [R=301,L]

此外,在实际重写之前,我已经移动了所有以前的重定向

票数 1
EN

Stack Overflow用户

发布于 2013-02-06 16:26:41

看起来你有一个循环,尝试在请求的URI上添加条件,比如:

代码语言:javascript
复制
RewriteCond %{REQUEST_URI} !^php/page.php
RewriteRule ^([^/]+)/([^/]+)([^/]+)/([^-]+)-([^.]+)\.htm?$ php/page.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5 [NC,L]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14724441

复制
相关文章

相似问题

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