.htaccess 301重定向匹配到新频道

.htaccess 301重定向匹配到新频道,.htaccess,redirect,server,.htaccess,Redirect,Server,我想从旧频道转到新频道 从 到 有人能告诉我为什么这不起作用吗 RedirectMatch 301 ^/oldchannel/$ $1/newchannel$2 应该是: RewriteEngine On RewriteBase / RewriteRule ^oldchannel/(.*)$ /newchannel/$1 [L,NC,R=301] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f

我想从旧频道转到新频道

有人能告诉我为什么这不起作用吗

RedirectMatch 301 ^/oldchannel/$ $1/newchannel$2
应该是:

RewriteEngine On
RewriteBase /

RewriteRule ^oldchannel/(.*)$ /newchannel/$1 [L,NC,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

需要从要在RHS目标中使用的模式和反向引用中捕获值。

ok:)也许您还可以解释以下内容:在重定向的下面,我有一个错误的“RewriteRule^(+)$index.php?url=$1[QSA,L]”。当我尝试访问/oldchannel/article/12345时,我被重定向到/newchannel/article/123456?url=/oldchannel/article/123456..@anubhava请按照上面给定的顺序设置规则。清除浏览器缓存后进行测试。
RedirectMatch 301 ^/oldchannel/$ $1/newchannel$2
RewriteEngine On
RewriteBase /

RewriteRule ^oldchannel/(.*)$ /newchannel/$1 [L,NC,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]