【问题标题】:Redirect a directory in a forwarded domain to another url with htaccess使用 htaccess 将转发域中的目录重定向到另一个 url
【发布时间】:2016-09-13 19:29:29
【问题描述】:

尝试获取转发域中的目录以重定向到 url 中的新页面,同时保持站点的其余部分重定向到新 url 的根的规则。

这是 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

【问题讨论】:

    标签: .htaccess mod-rewrite url-redirection forward


    【解决方案1】:

    您将 mod-rewrite 声明(RewriteCondRewriteRule)与 mod-alias(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]
    

    【讨论】:

    • 完美!我在第一行之后添加了第二行: RewriteRule ^example/$ mainsite.com/example.html [R=301,L] RewriteRule ^example$ mainsite.com/example.html [R=301,L] RewriteCond %{HTTP_HOST} ^.*forwardeddomain \.com$ [NC] RewriteCond %{REQUEST_URI} !^/example/ [NC] RewriteRule ^ mainsite.com [R=301,L] 因为 forwardeddomain.com/example/ 正在工作,但 forwardeddomain.com/example 没有.这行得通,但是添加那条额外的线有什么问题吗?感谢您的帮助
    • @midknyte 您可以使用RewriteRule ^example/?$ ... 更新第一个本身,这将同时处理/example/example/
    猜你喜欢
    • 2017-05-18
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    • 1970-01-01
    相关资源
    最近更新 更多