htaccess不工作在Apache 2.4虚拟主机

这是我的apache 2.4虚拟主机configuration

<VirtualHost *:80> DocumentRoot /var/www/fd-pro/app-api/public_html ServerName subdomain.domain.com.au ServerAlias subdomain.domain.com.au <Directory /var/www/fd-pro/app-api/public_html> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/subdomain-error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/subdomain-access.log combined </VirtualHost> 

我也启用了重写模块。

在/ var / www / fd-pro / app-api / public_html中有一个htaccess

 Header set Access-Control-Allow-Origin "*" Header set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT" Header set Access-Control-Max-Age "1000" Header set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token" RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [QSA,L] 

但仍然不工作!

任何线索,请?

如果您有权访问主configuration,则不应该使用.htaccess,在虚拟主机上下文中添加configuration,这将为您节省很多麻烦,但是如果您坚持的话。

回答你的问题:你粘贴的.htaccess中缺less的是指令:

 RewriteEngine on 

由于加载mod_rewrite是不够的,要在你的服务器上“启用”它的function,你必须添加这个指令,然后在你想要使用它的上下文中添加其他的。

改进您的解决scheme:
尽pipe如此,你甚至不需要mod_rewrite的那些“弃用”方法,因为一个:

 FallbackResource /index.php 

在你的虚拟主机将完全相同,没有mod_rewrite,没有这么多的指令一件事。