首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将4个不同的URL重定向到单个URL

将4个不同的URL重定向到单个URL
EN

Stack Overflow用户
提问于 2015-12-15 01:48:01
回答 2查看 66关注 0票数 1

我有一个问题,我希望URL重写向导可以帮助我,因为这个问题有点超出我的能力范围。

我有以下URL:

http://www.domain.com/region/news/123456-article-name-goes-here.html http://www.domain.com/region/news/123456-article-name-goes-here.html?get_var=1234 http://www.domain.com/mobile/region/news/123456-article-name-goes-here.html http://www.domain.com/mobile/region/news/123456-article-name-goes-here.html?get_var=1234

我需要将所有这些变体重定向到以下格式的URL:

http://www.domain.com/region/article-name-goes-here/

所以我需要删除'mobile/',删除'news/',删除'123456-',删除.html,删除所有GET变量,然后添加一个尾部斜杠。

做这件事最好的方法是什么?

非常感谢!

EN

回答 2

Stack Overflow用户

发布于 2015-12-15 02:11:35

我想说这就是你所需要的:

代码语言:javascript
复制
RewriteEngine on
RewriteRule ^/region/news/\d+-(.+)\.html$ http://www.domain.com/region/$1/ [R=301,L]
RewriteRule ^/mobile/region/news/\d+-(.+)\.html$  http://www.domain.com/region/$1/ [R=301,L]

你可以用一条规则做到这一点,但上面的规则更容易理解,所以我使用两条规则。

注:这是主机配置的版本。如果需要使用.htaccess样式文件,则必须从规则中的模式中删除前导斜杠,因为这些文件在相对路径上工作。但是,请注意,在任何可能的情况下,您都应该首选主机配置变体而不是htaccess样式文件。这些文件出了名的容易出错,实现起来很麻烦,更难调试,而且确实会降低服务器的运行速度。因此,只有在您确实需要时才依赖它们,例如,当您没有访问主机配置的权限时。

票数 1
EN

Stack Overflow用户

发布于 2015-12-15 03:26:27

您可以只使用一个规则来重定向这些urls:

尝试:

代码语言:javascript
复制
 RewriteEngine on
 RewriteRule ^(?:mobile/)?/([^/]+)/([^/]+)/([^-]+)-([^.]+)\.html$ http://example.com/$1/$4/? [NC,L,R]

?在规则的末尾很重要,因为它丢弃了url中的原始查询字符串。

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

https://stackoverflow.com/questions/34273427

复制
相关文章

相似问题

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