【问题标题】:Redirect external subdirectory in .htaccess重定向 .htaccess 中的外部子目录
【发布时间】:2014-12-18 20:02:48
【问题描述】:

以下代码可以完美地将外部 URL 重定向到我网站上的子目录:

RewriteCond %{http_referer} abc\.com [NC]
RewriteRule ^$ my-subdirectory/ [R=302,L]

此代码告诉从 abc.com 导航到我的网站的任何人将重定向到列出的子目录(例如 mywebsite.com/my-subdirectory)。

但我真正想要的是重定向一个引用子目录。换句话说:abc.com/some-subdirectory。如何将“some-subdirectory”添加到上述代码的第一行以使 abc.com/some-subdirectory 重新路由到 mywebsite.com/my-subdirectory?

【问题讨论】:

    标签: .htaccess rewrite referrer


    【解决方案1】:

    试试:

    RewriteCond %{http_referer} abc\.com/some-subdirectory [NC]
    

    【讨论】:

    • 这是我认为合乎逻辑的解决方案,我也尝试过。但它也不起作用。引用子目录将忽略该 RewriteRule 并登陆主页。谢谢你的时间。不胜感激。
    【解决方案2】:

    我认为你需要这样的东西:

    RewriteRule ^subdirectory/(.*)$ /anotherdirectory/$1 [R=301,NC,L]
    

    看看here

    【讨论】:

    • 非常感谢您的回答。但这对我不起作用。我将此重写规则添加到现有代码的中间,如下所示:'code'RewriteCond %{http_referer} abc\.com [NC] RewriteRule ^subdirectory/(.*)$ /some-subdirectory/$1 [R=301, NC,L] RewriteRule ^$ my-subdirectory/ [R=302,L]'code'
    • (抱歉,我不知道如何格式化我给您的回复中的代码)
    • 不客气,我已经尝试过了,并且成功了!所以,刚刚编辑了我的答案。
    • 再次感谢您。那行代码的哪一部分应该包含我的实际子目录文件夹名称?另外 - 我发现你链接到的那个页面,但在那个页面上,他们总是在同一个域中工作(mysample.com 是他们的例子)。在这种情况下,外部域(引用者)与我的域不同。不确定这是否会有所不同。
    • 我建议您阅读整个文档。但是如果你想将example.com/some-directory 重定向到yourdomain.com/sub-dicrectory 你应该在abc.com htaac​​ess 文件中使用这个:RewriteRule ^url-string-to-redirect$ http://www.yourdomain.com/your-new-url-string [R=301,L]
    猜你喜欢
    • 2021-12-19
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    相关资源
    最近更新 更多