Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess DirectAdmin中子域上的子文件夹中的htaccess导致403_.htaccess_Mod Rewrite_Subdomain - Fatal编程技术网

.htaccess DirectAdmin中子域上的子文件夹中的htaccess导致403

.htaccess DirectAdmin中子域上的子文件夹中的htaccess导致403,.htaccess,mod-rewrite,subdomain,.htaccess,Mod Rewrite,Subdomain,首先:我注意到很多关于类似问题的话题,我读过很多。然而,似乎与我所犯的错误性质完全相同 在我的DirectAdmin面板中,我创建了一个名为projects的子域,DirectAdmin自动在FTP上生成结构,子域解析为文件夹public\u html/projects/。在这个文件夹中,我计划为每个客户添加文件夹来添加他们的项目 让我们用一个例子来说明: 客户叫“约翰逊” 名为“汽车”的项目 在此文件夹中有一个index.html文件 htaccess文件在此项目文件夹(cars)中 此项目的

首先:我注意到很多关于类似问题的话题,我读过很多。然而,似乎与我所犯的错误性质完全相同

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

让我们用一个例子来说明:

  • 客户叫“约翰逊”
  • 名为“汽车”的项目
  • 在此文件夹中有一个index.html文件
  • htaccess文件在此项目文件夹(cars)中
  • 此项目的域是
    http://projects.mydomain.com/johnson/cars/
    内部结构为
    public\u html/projects/johnson/cars/
    。如果没有htaccess文件,一切正常,index.html将自动打开

    现在是导致问题的部分。我正在使用htaccess重写URL,该URL过去在www.subdomain上运行时没有任何问题,但由于我在projects文件夹中工作,因此导致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>
    
    
    选项+FollowSymLinks
    选项-索引
    重新启动发动机
    瑞贝斯/约翰逊/汽车公司/
    RewriteCond%{REQUEST_FILENAME}-f[或]
    RewriteCond%{REQUEST_FILENAME}-d
    重写规则^(.*)$test.php?vars=$1[L]
    
    php算不了什么,只是一个
    var\u dump()
    的$\u GET变量文件。但是显示的不是这个页面,而是403错误

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

  • 基地/汽车/
  • 更新基地/项目/约翰逊/汽车/
  • 基础/项目/
  • RewriteBase/johnson/(几乎所有可想到的变化)
  • 重写基/
  • 在重写规则前面添加了
    RewriteCond%{HTTP_HOST}^projects\.mydomain\.com$[NC]
  • 但是似乎没有什么帮助。。我有点卡住了,我不知道该去哪里找。我在这里和谷歌上尝试了不同的搜索。也许我使用了错误的关键字,但我找不到类似的问题,我一直在尝试将其他问题的解决方案合并到我的问题中,但没有任何成功


    谢谢你的帮助。

    我过去也遇到过类似的问题。经过大约一周徒劳的尝试,我发现这两个.htaccess文件互相干扰。我所做的是在directadmin中将子域设为一个单独的域,位于同一个clientname下

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

    Redirect / http://yourlink
    

    您的主htaccess(用于
    www
    子域)中有哪些规则?另外,我不知道这是否是一个打字错误,但是您的
    RewriteBase
    包含
    johson
    而不是
    johnson
    RewriteBase是一个打字错误:)根包含一个类似的htaccess文件。但是,即使禁用此文件夹,错误仍然是一样的。因为您获得了403,您是否对
    项目
    文件夹(以及其中的所有内容)应用了足够的权限?我不确定您的意思?无法在本地重现您的问题。请检查您的访问日志,查看与您看到的403页相关的错误消息。我已尝试禁用根htaccess,但没有成功。我将子域
    projects.domain.com
    添加为域名,并从中继续。虽然我不能把我的头脑集中在以前的错误上,但这种情况似乎给了我继续下去的可能性!谢谢。它工作正常。后来我注意到,所有人都缺少了一个
    允许。加上这条线,所有的零件都就位了。再次感谢。我刚刚做了一个测试,将子域复制到projects2.domain.com,然后使用DirectAdmin添加了一个子域,再次尝试。已将所有文件从projects2复制到域根目录的public_html文件夹中的projects文件夹。。。。而且。。。它起作用了!我猜,
    Allow From All
    是在胡闹。所以这两种方法都有效+200,这是找到解决方案的关键。