我有一个全新安装的Apache / 2.4.7(Ubuntu),运行LAMP堆栈。我已将所有文件转移到新服务器,并且在尝试访问子域时收到以下错误,实际域名正常运行:
Forbidden You don't have permission to access /index.php on this server.
我已经做了很多搜索,this thread似乎有最多的解决方案(我已经尝试了大部分解决方案)。
这是我的apache2.conf文件:
<Directory />
#Options FollowSymLinks
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
#Options FollowSymLinks
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
奇怪的是,子域基本上是通过.htaccess的掩码,因此网站内容永远不会离开/ var / www / example_com - 我的权限在&#39; www&#39;是755,我有完全root权限。
我很困惑,因为我似乎找不到任何工作可以让我访问我的主域名的子域名:sub.example.com - 只给我403.
非常感谢任何帮助。
编辑(有关我的.htaccess文件的更多信息) 我的.htaccess文件的权限是755,并且几个月内没有更改。它在之前的服务器上工作,该服务器运行相同的LAMP堆栈但只是Ubuntu的旧版本。
RewriteEngine on
RewriteCond $1 !^(index\.php|images|js|profile_pictures|fonts|stylesheets|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
RewriteCond %{HTTP_HOST} !^((www\.)?)example\.com [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.example\.com
RewriteRule ^(.*)$ http://example.com/site/%1$1 [L,NC,P]
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
请注意,我还运行CodeIgniter(如果重要的话)。
这是我加载的PHP模块(我在这里想到的是问题):
core mod_so mod_watchdog http_core mod_log_config mod_logio mod_version mod_unixd mod_access_compat mod_alias mod_auth_basic mod_authn_core mod_authn_file mod_authz_core mod_authz_host mod_authz_user mod_autoindex mod_deflate mod_dir mod_env mod_filter mod_mime prefork mod_negotiation mod_php5 mod_rewrite mod_setenvif mod_status