【问题标题】:htaccess in subfolder on subdomain in DirectAdmin causes 403DirectAdmin 中子域上的子文件夹中的 htaccess 导致 403
【发布时间】:2014-05-31 01:26:57
【问题描述】:

首先:我注意到很多关于类似问题的主题,并且我已经安静地阅读了其中的一些。但是 non 似乎与我遇到的错误具有完全相同的性质。

在我的 DirectAdmin 面板中,我创建了一个名为 projects 的子域,DirectAdmin 自动在 FTP 上生成结构,子域解析到文件夹 public_html/projects/。在这个文件夹中,我计划为每个客户创建文件夹来添加他们的项目。

让我们举个例子:

  1. 客户叫“约翰逊”
  2. 名为“汽车”的项目
  3. 在这个文件夹中有一个 index.html 文件
  4. htaccess 文件位于此项目文件夹 (cars) 中

这个项目的域名是http://projects.mydomain.com/johnson/cars/,内部结构是public_html/projects/johnson/cars/。如果没有 htaccess 文件,一切正常,index.html 会自动打开。

现在是导致问题的部分。我正在使用 htaccess 重写以前在 www 上没有任何问题的 URL。子域,但由于我在项目文件夹中工作,因此导致 403 错误。

我期望的工作是:

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    Options -Indexes

    RewriteEngine On
    RewriteBase /johson/cars/

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^(.*?)$ test.php?vars=$1 [L] 
</IfModule>

test.php 没什么,只是var_dump() 的$_GET 变量的文件。但是显示 403 错误而不是这个页面。

我尝试了很多东西,例如:

  1. RewriteBase /cars/
  2. RewriteBase /projects/johnson/cars/
  3. RewriteBase /projects/
  4. RewriteBase /johnson/(几乎所有可以想到的变体)
  5. 重写基础/
  6. 在 RewriteRules 前面添加了RewriteCond %{HTTP_HOST} ^projects\.mydomain\.com$ [NC]

但似乎没有任何帮助..我有点卡住了,我不知道该去哪里找。我在这里和谷歌上尝试了不同的搜索。也许我使用了错误的关键字,但我找不到类似的问题,我一直在尝试将解决方案合并到我的其他问题中,但没有任何成功。

感谢您的帮助。

【问题讨论】:

  • 主 htaccess 中的规则是什么(www 子域)?另外,我不知道这是否是拼写错误,但您的 RewriteBase 包含 johson 而不是 johnson
  • rewritebase 是一个错字 :) 根目录包含一个类似的 htaccess 文件。但即使这个被禁用,错误仍然是一样的。
  • 既然您收到了 403,您是否在您的 projects 文件夹(以及其中的所有内容)上应用了足够的权限?
  • 我不确定你的意思?
  • 无法在本地重现您的问题。请检查您的访问日志,了解与您看到的 403 页面相关的错误消息。

标签: .htaccess mod-rewrite subdomain


【解决方案1】:

我过去也遇到过类似的问题。经过大约一周的尝试使其工作无果后,我发现两个 .htaccess 文件相互干扰。我所做的是使子域在directadmin中以相同的客户端名称成为单独的域

【讨论】:

  • 我已经尝试禁用root htaccess,但没有任何成功
  • 我将子域 projects.domain.com 添加为域名,然后从那里开始。虽然我无法回想之前的问题,但这种情况似乎给了我继续下去的可能!谢谢。
  • 它工作正常。后来我注意到的是缺少Allow From All。添加这条线使所有部分都到位。再次感谢。
  • 我刚刚做了一个测试并将子域复制到 projects2.domain.com 并再次尝试使用 DirectAdmin 添加子域。将所有文件从项目 2 复制到域根目录的 public_html 文件夹中的项目文件夹中......并且......它有效!我猜Allow From All 是在胡闹。所以这两种方法都有效.. +200 将我推向正确的方向(日志),这是找到解决方案的关键。
【解决方案2】:

我通过在相关文件夹中创建一个 .htaccess 文件将我的子域重定向到另一个链接,其内容为:

Redirect / http://yourlink

【讨论】:

    猜你喜欢
    • 2012-09-14
    • 2016-01-19
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 2016-01-18
    • 2011-02-20
    相关资源
    最近更新 更多