使用 htaccess 将转发域中的目录重定向到另一个 url

Redirect a directory in a forwarded domain to another url with htaccess

尝试获取转发域中的目录以重定向到 url 中的新页面,同时维护站点其余部分重定向到新 [=31= 的根目录的规则].

这是 htaccess 上的当前代码

RewriteCond %{HTTP_HOST} ^.*forwardeddomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.mainsite.com [R=301,L]

这会将转发域中的任何内容转发到主站点。但现在他们需要添加一条豁免规则,以将该域中的一个目录 url 转发到主站点的另一部分。我试过这段代码,但它不起作用:

RewriteCond %{HTTP_HOST} ^.*forwardeddomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.mainsite.com [R=301,L]
redirect 301 forwardeddomain.com/example/ http://www.mainsite.com/example.html

在搜索此特定问题时未找到任何内容。我无权访问域名注册机构,只能访问 ftp 和 htaccess。

换句话说:

forwardeddomain.comforwardeddomain.com/anything/ 应该转发到 mainsite.com,但只有 forwardeddomain.com/example/ 应该转发到 mainsite.com/example.html

您将 mod-重写声明(RewriteCondRewriteRule)与 mod-别名(redirect)的声明混合在一起。只使用其中之一:

RewriteRule ^example/$ http://www.mainsite.com/example.html [R=301,L]

RewriteCond %{HTTP_HOST} ^.*forwardeddomain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/example/ [NC]
RewriteRule ^ http://www.mainsite.com [R=301,L]