apache - 我的.htaccess不仅适用于1个子域而且适用于其他子域

时间:2016-02-03 14:53:48

标签: php apache .htaccess ubuntu mod-rewrite

我使用Ubuntu wizzy作为我的本地服务器然后在那里设置域

  • domain.svr
  • api.domain.svr
  • adm.domain.svr

这就是问题所在。我为所有这些配置创建了完全相同的配置,但为什么只有adm.domain.svr不起作用?当我去http://adm.domain.svr/site/dashboard/时,它始终会回复404但是当我尝试http://api.domain.svr/site/dashboard/

时它没问题

这是我的配置

 <VirtualHost *:80>
      ServerAdmin localhost@gmail.com
      ServerName  domain.svr

      DocumentRoot /home/shaf/web/domain.dev/frontend/web
      <Directory />
           Options FollowSymLinks
           AllowOverride all
      </Directory>
      <Directory /home/shaf/web/domain.dev/frontend/web>
           Require all granted
           Options -Indexes +FollowSymLinks +MultiViews
           AllowOverride all
           Order allow,deny
           allow from all
      </Directory>

      ErrorLog /home/shaf/log/domain-error.log
      LogLevel warn

      CustomLog /home/shaf/log/domain-access.log combined
 </VirtualHost>
 <VirtualHost *:80>
      ServerAdmin localhost@gmail.com
      ServerName  adm.domain.svr

      DocumentRoot /home/shaf/web/domain.dev/backend/web
      <Directory /home/shaf/web/domain.dev/backend/web>
           Require all granted
           Options -Indexes +FollowSymLinks +MultiViews
           AllowOverride all
           Order allow,deny
           allow from all
      </Directory>

      ErrorLog /home/shaf/log/domain-adm-error.log
      LogLevel warn

      CustomLog /home/shaf/log/domain-adm-access.log combined
 </VirtualHost>
 <VirtualHost *:80>
      ServerAdmin localhost@gmail.com
      ServerName  api.domain.svr

      DocumentRoot /home/shaf/web/domain.dev/api/web
      <Directory />
           Options FollowSymLinks
           AllowOverride all
      </Directory>
      <Directory /home/shaf/web/domain.dev/api/web>
           Require all granted
           Options -Indexes +FollowSymLinks +MultiViews
           AllowOverride all
           Order allow,deny
           allow from all
      </Directory>

      ErrorLog /home/shaf/log/domain-api-error.log
      LogLevel warn

      CustomLog /home/shaf/log/domain-api-access.log combined
 </VirtualHost>

这是我放在每个域名网络文件夹上的.htaccess

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

请给我关于此的建议,我真的不知道。

2 个答案:

答案 0 :(得分:0)

您的ServerName domain.svr错误。 Apache无法路由它。尝试将其重命名为adm.domain.svr

答案 1 :(得分:0)

我只是通过复制另一个目录来解决这个问题并尝试但是失败了,所以我创建另外一个主机,所以我有4个主机。 1对于adm来说是重复的,它的工作非常完美。我仍然不知道发生了什么,但似乎只有那个文件夹没有读取htaccess并且我确定它,因为我已经尝试交换子域但只有adm文件夹没有读取htaccess文件。

所以这是我的结论,我不知道这是否正确,但apache有缓存htaccess所以我需要努力刷新apache(只有重启apache不起作用因为我已经尝试过了好几次,没有任何事情发生)所以也许你需要重启你的操作系统/服务器,如果你不想要它,试试我的方式。