【问题标题】:How to rewrite a directory to a 404 page?如何将目录重写为 404 页面?
【发布时间】:2014-11-27 12:46:08
【问题描述】:

我有一个托管帐户,上面有一个网站。我们称之为:www.example.com
在 cPanel 中,我设置了一个插件域:www.example2.com,它指向 www.example.com 上的一个文件夹:
www.example.com/example2

如果有人直接访问 www.example.com/example2,我该如何抛出 404 错误?

我已经在我的 .htaccess 文件中尝试过:

Options -Indexes
RewriteEngine On
Options +FollowSymLinks
RewriteRule ^example2(.*) - [R=404,L,NC]

但它没有用。它仍然显示 example2 文件夹的 index.php。 www.example.com 和 www.example2.com 网站都有自己的 .htaccess 文件。如果我禁用 www.example2.com 上的 .htaccess 文件,则上述重定向有效。

【问题讨论】:

    标签: apache .htaccess mod-rewrite redirect http-status-code-404


    【解决方案1】:

    /example2/.htaccess 里面有这条规则作为第一条规则:

    RewriteEngine On
    
    # if host name is not example2 then throw 404
    RewriteCond %{HTTP_HOST} !^(www\.)?example2\.com$ [NC]
    RewriteRule ^ - [L,R=404]
    

    【讨论】:

    • 这显示了 500 内部服务器错误。将 [L,404] 部分更改为 [L,R=404],它可以工作。非常感谢你。 15 分钟结束后,我会立即接受您的答复。
    • 好的,我不得不稍微修改它以使 www 部分可选:RewriteCond %{HTTP_HOST} !^(www.\)?example2\.com [NC]
    • 对不起,我犯了一些愚蠢的错别字,但你发现了它们。很高兴它成功了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多