Php htaccess重写规则以重定向到新域

Php htaccess重写规则以重定向到新域,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,我需要将所有文章从旧域重定向到新域。旧域文章(非wordpress站点)的slug如下: www.olddomain.com/CATEGORY_NAME/ID_ARTICLE/ARTICLE_SLUG www.newdomain.com/ARTICLE_SLUG 新的域文章(wordpress站点)类似于: www.olddomain.com/CATEGORY_NAME/ID_ARTICLE/ARTICLE_SLUG www.newdomain.com/ARTICLE_SLUG 因此,我

我需要将所有文章从旧域重定向到新域。旧域文章(非wordpress站点)的slug如下:

www.olddomain.com/CATEGORY_NAME/ID_ARTICLE/ARTICLE_SLUG
www.newdomain.com/ARTICLE_SLUG
新的域文章(wordpress站点)类似于:

www.olddomain.com/CATEGORY_NAME/ID_ARTICLE/ARTICLE_SLUG
www.newdomain.com/ARTICLE_SLUG
因此,我需要htaccess规则从旧域重定向到新域,即删除旧域的前两段(CATEGORY_NAME和ID_ARTICLE)

目前,我在htaccess文件中有以下内容:

RewriteRule ^(.*)$ http://www. newdomain .com/$1 [R=301,L]
但它会对所有URL进行重定向

试试这个:

重新编写引擎打开
重写基/
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写cond%{HTTP_HOST}^www\.olddomain\.com
重写规则^(.*)/(.*)/(.*)$http://www.newdomain.com/$3[L,R=301,QSA]
如果文件中还有进一步的重写,请丢失
[L]
标志

我和它似乎按照你的意愿工作:

试试这个:

重新编写引擎打开
重写基/
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写cond%{HTTP_HOST}^www\.olddomain\.com
重写规则^(.*)/(.*)/(.*)$http://www.newdomain.com/$3[L,R=301,QSA]
如果文件中还有进一步的重写,请丢失
[L]
标志

我和它似乎按照你的意愿工作: