我有一个新网站,需要301个旧网页,并在某个路径上添加虚荣网址
新网站产品页面示例网址 http://www.mywebsite.com/en/section/nice-url-name_123.html 从这个网址我需要抓住部分,名称和ID
这是我的规则
RewriteRule ^en/([^_]+)/([^_]+)_([0-9]+).html /en/$1/detail.php?name=$2&id=$3 [L]
这很好用
在网站的早期版本中,他们使用此网址格式
http://www.mywebsite.com/en/section/nice-url-name
我无法找到拦截此网址并重定向到我的新网址的方法,ID丢失且可以为0
所以它应该成为 http://www.mywebsite.com/en/section/nice-url-name_0.html
因为我无法找到一种方法,我尝试在网址
添加一个trailling斜杠RewriteCond %{REQUEST_URI} !\.(php|html?|jpg|png|gif|ttf|ttf)$
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]
然后尝试逐节捕捉它们
RewriteRule ^en/section1/([^_]+)/ /it/301.php?redirectd=section1&name=$1 [L]
如果没有以无限循环结束,我无法找到任何其他方式 但是这种方式我需要排除所有扩展,否则Apache将在图像,字体,pdf等结尾处添加尾部斜杠
答案 0 :(得分:1)
要回答你的陈述“我找不到拦截这个网址的方法......”我想提出一些建议:
RewriteEngine on
RewriteRule ^/?en/([^/]+)/([^\./]+)$ /en/301.php?redirected=1§ion=$1&name=$2 [L]