首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在.htaccess上重写URL

问在.htaccess上重写URL
EN

Stack Overflow用户
提问于 2016-11-10 12:32:38
回答 2查看 21关注 0票数 1

我有像www.example.com/de/something这样的urls,我需要将以/de/开头的所有内容都重定向到www.example.com。

此刻我已经做了这个

代码语言:javascript
复制
redirect 301 /de http://example.com

它重定向所有链接,但只删除/de部件,结果是www.example.com/something。

怎么解决这个问题?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-10 12:35:52

重定向指令匹配uri的其余部分并将其追加到目标中,可以使用RedirectMatch重定向特定的uri。

代码语言:javascript
复制
redirectMatch 301 ^/de/? http://example.com
票数 1
EN

Stack Overflow用户

发布于 2016-11-10 12:40:44

如果您希望/de/在目标中指定/de/,因为重定向将在目标中包含“匹配的”后面的所有内容。

对于不同的虚拟主机作为目标,您希望这样做:

代码语言:javascript
复制
Redirect 301 /de/ http://example.com/de/

或

代码语言:javascript
复制
Redirect 301 /de http://example.com/de

如果您想要的是在同一个虚拟主机/de中将其重定向到/,那么请使用负前瞻性。

代码语言:javascript
复制
RedirectMatch ^(?!de) http://example.com/

如果上下文是.htaccess,对于虚拟主机,它将是:

代码语言:javascript
复制
RedirectMatch ^/(?!de) http://example.com/

注意:我使用/de/最初是因为这是您在问题中所描述的,而且我还匹配目标中的斜杠。对于/desomething或/de/之类的情况,源和目标都不需要斜杠。在任何情况下,总是匹配斜杠或缺少它们。

Note2:除非你不是网站的管理员,否则不要使用.htaccess重定向。它只会使事情复杂化,并增加不必要的开销,因为每次命中都需要检查文件/s多次。

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

https://stackoverflow.com/questions/40527730

复制
相关文章

相似问题

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