我怎样才能.htaccess 301将所有页面/文件(除了一个)重定向到新域名?

时间:2015-06-18 09:34:24

标签: regex apache .htaccess mod-rewrite

我怎么能.htaccess 301将所有页面/文件(除了一个)重定向到新域名?

我已经创建了一个.htaccess文件,该文件成功地将旧域(www.olddomain.com)上的大多数不同页面和文件重定向到我的新域(www.newdomain.com)。

但是,我需要一个页面才能重定向到新网站,该页面是Google验证.html文件:

http://www.olddomain.com/googleverification.html

我附上了粘贴在下面的文件(.htaccess)中最相关的部分:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^olddomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.olddomain.com$
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [L,R=301]

RewriteCond %{REQUEST_URI}  !.(php|html?|jpg|gif|png|pdf|tiff|bmp|ico|gz|zip|xml|txt)$
RewriteRule ^(.*)([^/])$ http://www.newdomain.com/$1$2/ [L,R=301]


# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

2 个答案:

答案 0 :(得分:2)

将您的第一条规则保留为:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$ [NC]
RewriteCond %{THE_REQUEST} !/googleverification\.html [NC]
RewriteRule ^ http://www.newdomain.com%{REQUEST_URI} [L,R=301,NE]

答案 1 :(得分:0)

我一直在不同的论坛上问同样的问题,另一种解决方案也有效。

我只想在这里分享。

RewriteCond {HTTP_HOST} !^www.newdomain.com$
RewriteCond %{REQUEST_URI} !^/googleverification.html
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [L,R=301]