【问题标题】:mod_rewrite http_hostmod_rewrite http_host
【发布时间】:2012-01-06 17:00:42
【问题描述】:

如何防止访问基于 HTTP_HOST 的子目录。

我有 2 个停放的域指向一个目录。它们都提供同一个网站。

但是我希望每个人都有一个单独的 wordpress 博客。为此,我将它们安装在不同的目录中。

domain1.com/domain1-blog/ domain2.com/domain2-blog/

问题是目录可以跨域访问。比如

domain1.com/domain2-blog/ domain2.com/domain1-blog/

我真的不希望人们能够跨域访问。 Wordpress 会崩溃,我会在 Google 中遇到重复的内容问题。

如果有人尝试访问,我需要将什么确切代码放入我的 htaccess 文件中以提供 404 错误

domain1.com/domain2-blog/ 或者 domain2.com/domain1-blog/

我想可能以某种方式使用 HTTP_HOST 与 mod_rewrite 结合?

我是 htaccess 的新手,所以越明确越好。

谢谢

【问题讨论】:

    标签: wordpress .htaccess


    【解决方案1】:

    尝试将以下内容添加到域根目录中的 htaccess 文件中

    RewriteEngine on
    RewriteBase /
    
    #if its domain1
    RewriteCond %{HTTP_HOST} domain1\.com$ [NC]
    #and the request is for domain2 blog
    RewriteCond %{REQUEST_URI} ^/domain2-blog/ [NC]
    #send a 403 forbidden
    RewriteRule . - [F,L]
    
    #if its domain2
    RewriteCond %{HTTP_HOST} domain2\.com$ [NC]
    #and the request is for domain1 blog
    RewriteCond %{REQUEST_URI} ^/domain1-blog/ [NC]
    #send a 403 forbidden
    RewriteRule . - [F,L]
    

    【讨论】:

    • 效果很好!非常感谢! cmets 也非常有用。
    • 我很好奇,是否有一种方法也可以重写 URL,以便访问者看起来像他们在 domain1.com/blog/ 或 domain2.com/blog/ 的位置,即使他们实际上是从 domain1.com/domain1-blog/ 和 domain2.com/domain2-blog/ 调用文件
    猜你喜欢
    • 1970-01-01
    • 2013-05-14
    • 2011-12-27
    • 2013-01-26
    • 2016-09-04
    • 2011-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多