0

我已经使用 Puphpet 设置了一个本地 VM。我的文件结构如下:

|-www
     |- public
         -.htaccess
         - index.php
     | -subdomain
         -.htaccess
         - index.php

以下是我的 config.yaml 中的相关位:

modules:
    - rewrite
vhosts:
    fj3ju1mwry6l:
        servername: main.dev
        serveraliases:
            - www.main.dev
        docroot: /var/www/public
        port: '80'
        setenv:
            - 'APP_ENV dev'
        directories:
            zfy5qmype3xj:
                provider: directory
                path: /var/www/public
                options:
                    - Indexes
                    - FollowSymlinks
                    - MultiViews
                allow_override:
                    - All
                require:
                    - all
                    - granted
                custom_fragment: ''
        engine: php
    3xbo0zhpbo5g:
        servername: subdomain.main.dev
        docroot: /var/www/subdomain
        port: '80'
        directories:
            otngayglj5ug:
                provider: directory
                path: ''
                options:
                    - Indexes
                    - FollowSymlinks
                    - MultiViews
                allow_override:
                    - All
                require:
                    - all
                    - granted
                custom_fragment: ''
        engine: php
        custom_fragment: ''
mod_pagespeed: 0

在我放置的每个 .htaccess 中:

deny from all

访问 main.dev 会导致禁止,这是正确的,但是访问 subdomain.main.dev 会显示 index.php。有人知道 .htaccess 被第二个虚拟主机忽略了吗?

4

1 回答 1

0

好的,万一其他人也经历过同样的事情。第二个 vhosts conf 文件(在 /etc/httpd/conf.d/xxxx.conf 中找到)没有在目录下声明任何内容(我认为 Puphpet 或 Vagrant 肯定存在错误)。我添加了以下内容(取自第一个 vhosts conf):

<Directory "/var/www/school">
 Options Indexed FollowSymlinks MultiViews
 AllowOverride All
 Require all granted
</Directory>

现在两个 htaccess 文件都被拾取。

编辑

好的,毕竟我在我的配置 yaml(路径)中注意到了这一行:

otngayglj5ug:
            provider: directory
            path: ''
            options:

填写并重新配置后,它按预期工作。

于 2015-03-08T14:33:00.073 回答