这个主题对我来说很抽象,我担心我永远不会真正理解如何创建正确的模式。
我确实有1500个++网址,我需要用301重定向。这个手动很多,所以必须有一个解决方案。
该网站包含以下网址:
somedomain.tld / somepath /
somedomain.tld / somepath / somefile.ext
somedomain.tld / somepath / somepath /文本0123456
somedomain.tld / somepath / somepath /一些-更多文本-0120123
somedomain.tld / somepath / somepath /数字-1234-7654321
我需要重定向的是最后3种类型的URL。新目标应该看起来几乎相同,但没有最后一个数字和最后一个冲程。
IE:
OLD:somedomain.tld / somepath / somepath / text-0123456
新:somedomain.tld / somepath / somepath / text
OLD:somedomain.tld / somepath / somepath / some-more-text-0120123
新:somedomain.tld / somepath / somepath / some-more-text
OLD:somedomain.tld / somepath / somepath / numbers-1234-7654321
新:somedomain.tld / somepath / somepath / numbers-1234
用文字说明重定向应该选择以“ - ”和7位数字结尾的所有网址,并将它们重定向到不带“ - ”且没有7位数字的相同网址。
提前感谢您的支持! 托马斯
答案 0 :(得分:2)
这绝对可以通过基于正则表达式的规则来解决。将此代码放在DOCUMENT_ROOT/.htaccess
文件中:
RewriteEngine On
RewriteRule ^(.+?)-[0-9]{7}$ /$1 [L,R]
答案 1 :(得分:1)
RewriteCond %{HTTP_HOST}:%{SERVER_PORT}s ^(.*):(443(s)|\d+s)$
RewriteRule ^/?(.+)-[0-9]{7}$ http%3://%1/$1 [R=301,QSA,L]
将负责重定向,保持相同的协议和可能的GET参数......