【问题标题】:.htaccess domain redirection to folder but preventing direct access with 404.htaccess 域重定向到文件夹,但阻止使用 404 直接访问
【发布时间】:2011-12-01 15:37:02
【问题描述】:

我有一个共享主机,我想在其中托管多个网站。为此,为了清楚起见,我已将我的主域(即 www.mydomain.com)重定向到一个文件夹(即 /mydomain.com/)。但是,我想阻止从带有 404 错误(未找到)的 URL 直接访问此文件夹(www.mydomain.com/mydomain.com/)。

这是根目录下的.htaccess:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$ [NC]
RewriteCond %{REQUEST_URI} !^/mydomain.com/0.1/$ [NC]
RewriteRule ^(.*)$ /mydomain.com/0.1/$1
RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$ [NC]
RewriteRule ^(/)?$ mydomain.com/0.1/index.php [L]

RewriteCond %{THE_REQUEST}% ^[A-Z]{3,9}\ /mydomain\.com/ [NC]
RewriteRule . - [R=404,L]

这是 /mydomain/ 中的 .htaccess,其中包含一系列漂亮整洁的 URL 规则。

RewriteEngine On
RewriteRule ^about/(.+) index.php?a=about&b=$1
RewriteRule ^services/(.+) index.php?a=services&b=$1

现在是这样的结果:

访问 www.mydomain.com 会按预期显示 /mydomain/ 中的内容。但是,www.mydomain.com/mydomain/ 也会显示,忽略 404 规则,并创建另一个文件夹 - 无论名称如何 - 没有 htaccess 会抛出 404。

我已经处理这个问题 5 天了,并且尝试了所有方法。此时我不知道错误是来自根 .htaccess 还是来自文件夹。

提前致谢。

PS:为了清楚起见,我无法控制 httpd.conf 文件。


注意事项:

  1. 我忘了说 /mydomain.com/ 内还有一个名为 /0.1/ 的附加文件夹用于版本控制。
  2. 如果在 /mydomain.com/0.1/htaccess 中的“RewriteEngine On”之后包含“RewriteOptions Inherit”,我会收到 500 内部服务器错误。
  3. 完全删除 /mydomain.com/0.1/ htaccess 文件将为 www.mydomain.com/mydomain.com/0.1/ 产生所需的 404 错误,并在 www.mydomain.com 中产生 505

【问题讨论】:

    标签: .htaccess mod-rewrite redirect dns


    【解决方案1】:

    重写规则中的R 标志应该在 301 到 399 之间,所以不能是 404!!!
    您的规则应如下所示:

    RewriteCond %{THE_REQUEST}    ^/mydomain\.com/? [NC]
    RewriteRule (.*)  throw_404.php [L]
    

    创建throw_404.php并发送404状态码!并将L 标志添加到您的第一条规则中,以避免该规则与我的规则发生冲突!

    【讨论】:

    • 它不工作。只是为了确定:我将 throw_404.php 文件放在 /domain.com/ 中,其中包含一行 .
    • 关于[R=404],其余文件夹和文件都成功发送了404错误...奇怪。
    • @4dllmg 将 throw_404.php 放在根文件夹中,而不是 /domain.com/
    • @4dllmg 我知道它会发送 404 not found 响应代码,但是因为在其手册中说它应该在 301 到 399 之间,所以我这么说。无论如何,您的重写规则有问题:-D
    • @4dllmg for 第二个 .htaccess 文件:在此处发布两个文件的内容以查找问题!
    猜你喜欢
    • 1970-01-01
    • 2019-06-09
    • 2015-04-07
    • 2012-11-03
    • 1970-01-01
    • 2019-05-26
    • 1970-01-01
    • 2011-08-11
    • 2013-11-03
    相关资源
    最近更新 更多