Mod rewrite 用不同的格式重写规则301

Mod rewrite 用不同的格式重写规则301,mod-rewrite,subdirectory,Mod Rewrite,Subdirectory,好的,我需要找到我想要做的事情的正确语法 这些链接: http://www.example.com/sub1/sub2/product1/ (...) http://www.example.com/sub1/sub2/product700/ 需要重定向到 http://www.example.com/sub3/product1-newsite/ (...) http://www.example.com/sub3/product700-newsite/ 我所尝试的: RewriteEngine

好的,我需要找到我想要做的事情的正确语法

这些链接:

http://www.example.com/sub1/sub2/product1/
(...)
http://www.example.com/sub1/sub2/product700/
需要重定向到

http://www.example.com/sub3/product1-newsite/
(...)
http://www.example.com/sub3/product700-newsite/
我所尝试的:

RewriteEngine On
RewriteRule ^/sub1/(.*)/(.*)$ http://www.example.com/subdir/$1-newsite/ [R=301,L]
对于所有700种产品。 我还需要为某些产品做一些例外


有人能看出我做错了什么吗?

我认为这只是正则表达式上的编号问题

$1是第一个匹配组,$2是第二个匹配组,以此类推,$0表示匹配的整个字符串(即整个路径)

尝试:

编辑

啊。。。有一个想法。。。捕获的第一个正则表达式可能有点太贪婪了。。。因为它可以匹配:

^/sub1/[sub2/product1新闻站点]/[]
因此$1将是
sub2/product1新闻站点
,而$2将是空的(.*可以很高兴地匹配任何内容)

所以我们需要确保它不会抓到太多东西

RewriteEngine On
RewriteRule ^/sub1/([^/]+)/(.+)/$ http://www.example.com/subdir/$2-newsite/ [R=301,L]
*
更改为
+
可确保至少匹配一个字符

更改为
[^/]
可确保我们匹配“除a/之外的任何内容”

在末尾添加了一个
/
,以确保$2不会捕获尾部斜杠


我想这只是正则表达式的编号问题

$1是第一个匹配组,$2是第二个匹配组,以此类推,$0表示匹配的整个字符串(即整个路径)

尝试:

编辑

啊。。。有一个想法。。。捕获的第一个正则表达式可能有点太贪婪了。。。因为它可以匹配:

^/sub1/[sub2/product1新闻站点]/[]
因此$1将是
sub2/product1新闻站点
,而$2将是空的(.*可以很高兴地匹配任何内容)

所以我们需要确保它不会抓到太多东西

RewriteEngine On
RewriteRule ^/sub1/([^/]+)/(.+)/$ http://www.example.com/subdir/$2-newsite/ [R=301,L]
*
更改为
+
可确保至少匹配一个字符

更改为
[^/]
可确保我们匹配“除a/之外的任何内容”

在末尾添加了一个
/
,以确保$2不会捕获尾部斜杠


希望能解决这个问题。

你重定向到什么位置(比如)?我现在有700条规则:重定向301/sub1/sub2/product1 My.htaccess现在几乎是80 KB,正在寻找缩小文件大小的方法。你重定向到什么位置(比如说)?我现在有700条规则:重定向301/sub1/sub2/product1 My.htaccess现在几乎是80 KB,正在寻找缩小文件大小的方法。谢谢,但这不起作用。第一个建议是没有选择的,因为第二个subdir随产品而变化。第二个建议是不要改变方向。还有别的主意吗?更新了答案谢谢,但那不行。第一个建议是没有选择的,因为第二个subdir随产品而变化。第二个建议是不要改变方向。还有别的主意吗?更新了答案
RewriteEngine On
RewriteRule ^/sub1/([^/]+)/(.+)/$ http://www.example.com/subdir/$2-newsite/ [R=301,L]