首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在htaccess中重写URL部分

如何在htaccess中重写URL部分
EN

Stack Overflow用户
提问于 2015-11-16 09:17:50
回答 1查看 153关注 0票数 2

我试图应用在StackOverflow上找到的其他答案,但都没有效果。

我有旧的链接,在谷歌,人们正在访问,但我的网页的结构已经改变,如果人们调用这些链接,页面将显示混乱。

我有这样的链接:

代码语言:javascript
复制
/PIXMA/Canon-PRINT-Inkjet/SELPHY-664425773
/PL/SQL-Timestamp/Dawsons-Integral-Calculator-903670995
/--/-HDPrime-Dictionary-E-K/두산동아-중학교-교과서2007개정-교육-과정-429617286

我只想把最后一部分放在最后一个斜线后面,就像下面这样:

代码语言:javascript
复制
/SELPHY-664425773
/Dawsons-Integral-Calculator-903670995
/두산동아-중학교-교과서2007개정-교육-과정-429617286

我的htaccess现在看起来是这样的:

代码语言:javascript
复制
AddDefaultCharset utf-8
RewriteEngine On
Options +FollowSymlinks

RewriteRule ^robots\.txt$ robots-subdomains.txt

#ErrorDocument 404 /404.php

RewriteRule ^cat/([a-zA-Z_-]+)/([0-9]+)$ /404.php [NC]
RewriteRule ^cat/([a-zA-Z_-]+)$ /404.php [NC]
RewriteRule ^grossing/([a-zA-Z_-]+)/([0-9]+)$ /404.php [NC]
RewriteRule ^app/([a-zA-Z_-]+)/([a-zA-Z0-9_-]+)/([0-9]+)$ /$2-$3 [R=301,NC]

#This is the final output
RewriteRule ^(.+)-([0-9]+)$ appsite.php?title=$1&id=$2

正如您所看到的,已经有一些重写规则了,我想重定向到404。这不是问题所在。

我想将那些格式错误的URL重定向到像htaccess中的最后一行那样格式化的站点。

问题是,我不知道URL中的文本和格式(斜杠的数量),因为它们是动态生成的。唯一确定的是最后一个斜杠后面的URL的最后一部分.

有人能告诉我,在最后一刀之前怎么剪掉所有的东西吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-16 09:49:16

这可以通过以下方法实现:

代码语言:javascript
复制
RewriteRule ^.*/([^/]+-[0-9]+)$ /$1 [R=301]

如果url以任何数字结尾,这将重定向每个请求,例如www.example.com/xxx/yyy/foobar-123 -> www.example.com/foobar-123

[R=301]将强制使用HTTP301“永久移动”重定向。这将告诉所有搜索引擎,它们应该删除旧的URL,而使用新的URL。

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

https://stackoverflow.com/questions/33731862

复制
相关文章

相似问题

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