【问题标题】:Restrict direct access to subdomain using .htaccess使用 .htaccess 限制对子域的直接访问
【发布时间】:2015-10-07 00:08:44
【问题描述】:

目标是限制对子域 (addon.example.com) 或其下的 url (addon.example.com/anyurl) 的任何直接访问。应该指向 404 页面。

需要的是:

addon.example.com --> example.com/404.html 
addon.example.com/anyurl --> example.com/404.html 
example.com/anyurl --> example.com/anyurl

我在子域(插件域文件夹根)目录中的 .htaccess 文件中使用以下代码。

如果请求是 addon.example.com,它可以按预期使用 404 但如果请求是 addon.example.com/anyurl

,仍然会直接不使用 404

感谢对代码的任何替代或调整:)

RewriteEngine ON
RewriteCond %{HTTP_HOST} ^(www\.)?addon\.example\.com [NC]
RewriteRule (.*) http://example.com/404.php [R=404,L]

【问题讨论】:

  • 为什么在子域上的所有内容都是 404 时首先要有一个子域?只是不提供特定网络服务器上的子域。
  • 子域是主机帐户中的插件域(cpanel)。可以直接访问子域,例如通过 addon.com。目的是避免重复的 url 在搜索结果中被索引(如 addon.example.com/some_url 和 addon.com/some_url ,两者都是相同的内容)

标签: apache .htaccess mod-rewrite


【解决方案1】:

这是我为解决问题而选择的。它给出了预期......

addon.example.com --> example.com/404.html 
addon.example.com/anyurl --> example.com/404.html 
example.com/anyurl --> example.com/anyurl
addon.com/anyurl --> addon.com/anyurl

插件域根目录使用的.htaccess代码

RewriteEngine on
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} !addon\.com$ [OR]
RewriteCond %{HTTP_HOST} ^addon\.example\.com$
RewriteRule [addon]?(.*) http://example.com/404.html$1 [R=404,L]

如果您在 cpanel 中将许多域作为插件域托管,并且希望避免插件作为主域的子域出现,这会很方便。有利于 SEO 以及如果您想让每个插件在 url 中显示为没有任何关系。

仍然感谢任何人为此问题分享改进/替代/高效 .htaccess 代码。

【讨论】:

    猜你喜欢
    • 2014-02-05
    • 1970-01-01
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多