我试图应用在StackOverflow上找到的其他答案,但都没有效果。
我有旧的链接,在谷歌,人们正在访问,但我的网页的结构已经改变,如果人们调用这些链接,页面将显示混乱。
我有这样的链接:
/PIXMA/Canon-PRINT-Inkjet/SELPHY-664425773
/PL/SQL-Timestamp/Dawsons-Integral-Calculator-903670995
/--/-HDPrime-Dictionary-E-K/두산동아-중학교-교과서2007개정-교육-과정-429617286我只想把最后一部分放在最后一个斜线后面,就像下面这样:
/SELPHY-664425773
/Dawsons-Integral-Calculator-903670995
/두산동아-중학교-교과서2007개정-교육-과정-429617286我的htaccess现在看起来是这样的:
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的最后一部分.
有人能告诉我,在最后一刀之前怎么剪掉所有的东西吗?
发布于 2015-11-16 09:49:16
这可以通过以下方法实现:
RewriteRule ^.*/([^/]+-[0-9]+)$ /$1 [R=301]如果url以任何数字结尾,这将重定向每个请求,例如www.example.com/xxx/yyy/foobar-123 -> www.example.com/foobar-123。
[R=301]将强制使用HTTP301“永久移动”重定向。这将告诉所有搜索引擎,它们应该删除旧的URL,而使用新的URL。
https://stackoverflow.com/questions/33731862
复制相似问题