为子域设置虚拟主机

为子域设置虚拟主机

我正在尝试制作虚拟主机,但它有点半工作。我能够运行索引.php并加载主页,但是当我尝试转到任何链接时,我得到:

Not Found

The requested URL /home was not found on this server.
Apache/2.4.7 (Ubuntu) Server at c2s.dev Port 80

(我在用yii2框架,如果这意味着什么)。我还可以使用子域访问该站点(我找不到服务器)。什么是正确的配置?我默认使用 Linux Mint 17.1设置。这是我的 c2s.conf:

<VirtualHost 127.0.1.1:80>
  DocumentRoot /var/www/c2c/www
  ServerName c2s.dev
  ServerAlias *.c2s.dev
</VirtualHost>

在 /etc/hosts 中我添加了以下内容:

127.0.1.1   c2s.dev
127.0.1.1   *.c2s.dev

答案1

Yii 的官方网站解释了如何为 apache 配置 vhost。你可以看看例子这里

对于apache来说基本上配置是:

<Directory "path/to/basic/web">
    # use mod_rewrite for pretty URL support
    RewriteEngine on
    # If a directory or a file exists, use the request directly
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # Otherwise forward the request to index.php
    RewriteRule . index.php

    # ...other settings...
</Directory>

对于你的情况,它可能看起来像这样:

<VirtualHost *:80>
    ServerName c2s.dev
    DocumentRoot /var/www/c2c/www
    <Directory /var/www/c2c/www>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>
</VirtualHost>

根 Web 文件夹上的文件 .htaccess 如下所示:Options +FollowSymLinks IndexIgnore/

<IfModule mod_rewrite.c>
    RewriteEngine on

    #RewriteBase /

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^.*$ index.php
</IfModule>

相关内容