您需要在这里重定向除主页之外的所有请求,因此请在主根.htaccess 尝试此操作:
RewriteRule ^(.+)$ http://www.newsite.com/$1 [L,R=302]
然后将主页重定向到特定页面,因此添加以下行:
RewriteRule ^(.*)$ http://www.newsite.com/old-site [L,R=302]
都是这样的:
RewriteRule ^(.+)$ http://www.newsite.com/$1 [L,R=302]
RewriteRule ^(.*)$ http://www.newsite.com/old-site [L,R=302]
这个正则表达式^(.+)$ 将捕获除/ 之外的所有请求,然后另一个正则表达式^(.*)$ 将捕获对主页/ 的请求,但根据您分配的主页,您可以在第一个这样的请求之前将其除外,考虑index:
RewriteCond %{REQUEST_URI} !^/index
RewriteRule ^(.+)$ http://www.newsite.com/$1 [L,R=302]
RewriteRule ^(.*)$ http://www.newsite.com/old-site [L,R=302]
如果有查询字符串,您可以输入这些规则:
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ http://www.newsite.com/old-site [L,R=302]
RewriteRule ^(.+)$ http://www.newsite.com/$1 [L,R=302]
所以,如果没有查询字符串只有主页,否则按原样重定向。
注意:如果一切正常,请将 302 更改为 301 以获得永久重定向并确保在测试前清空浏览器缓存