正如标题所说,我正在将网站从olddomain.com
迁移到newdomain.com
。我目前在olddomain.com
的网络根目录中有一个htaccess 301重定向,如下所示,将olddomain.com/any/url
的任何请求重定向到newdomain.com
上的相应相应网址:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !newdomain.com$ [NC]
RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R=301]
我的问题是,如何修改此重写规则以排除一个特定目录? olddomain.com/downloads
将继续作为文件镜像,因此我需要从原始网站范围的301重定向中排除olddomain.com/downloads
(及其所有子目录,例如/releases
等),以便任何对olddomain.com
上的网址的请求会被重定向到newdomain.com
上的相应网址,但对olddomain.com/download
内的文件或目录的任何请求除外。
编辑如下面的评论中所述,我还需要从重定向中排除olddomain.com/getlatest.php
,因为它会生成依赖于解析服务器目录结构的下载链接。
答案 0 :(得分:1)
您可以在RewriteRule
中使用此否定条件:
RewriteEngine On
RewriteCond %{HTTP_HOST} !newdomain\.com$ [NC]
RewriteRule !^(downloads(/.*)?|getlatest\.php)$ http://newdomain.com%{REQUEST_URI} [L,R=301,NE,NC]