使用 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.com
和 forwardeddomain.com/anything/
应该转发到 mainsite.com
,但只有 forwardeddomain.com/example/
应该转发到 mainsite.com/example.html
您将 mod-重写声明(RewriteCond
和 RewriteRule
)与 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]
尝试获取转发域中的目录以重定向到 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.com
和 forwardeddomain.com/anything/
应该转发到 mainsite.com
,但只有 forwardeddomain.com/example/
应该转发到 mainsite.com/example.html
您将 mod-重写声明(RewriteCond
和 RewriteRule
)与 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]