![](/img/trans.png)
[英]How can I create a .htaccess file that 301 redirects to HTTPS, redirects trailing slash from end of URL to non and removes .php without conflicts?
[英]RewriteRule and 301 on url without trailing slash at the end
我有一个新的网站,需要301个旧页面,并在某些路径上添加虚荣网址
新网站产品页面示例url http://www.mywebsite.com/en/section/nice-url-name_123.html从此url我需要获取部分,名称和ID
这是我的规则
RewriteRule ^en/([^_]+)/([^_]+)_([0-9]+).html /en/$1/detail.php?name=$2&id=$3 [L]
这很好
在以前版本的网站上,他们使用了这种网址格式
http://www.mywebsite.com/zh-CN/section/nice-url-name
我找不到一种方法来拦截此URL并重定向到我的新URL,id丢失,并且可以为0
因此它应该变成http://www.mywebsite.com/en/section/nice-url-name_0.html
由于找不到方法,我尝试在URL处添加斜杠
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]
没有找到无限的301循环结束,我找不到其他方法,但是这种方式我需要排除所有扩展名,否则Apache将在图像,字体,pdf等的末尾添加斜杠。
为了回答您的声明“我找不到一种方法来拦截此URL ...”,我想提出一些建议:
RewriteEngine on
RewriteRule ^/?en/([^/]+)/([^\./]+)$ /en/301.php?redirected=1§ion=$1&name=$2 [L]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.