htaccess 在 apache 2.4 虚拟主机上不起作用

htaccess 在 apache 2.4 虚拟主机上不起作用

这是我的 apache 2.4 虚拟主机配置

<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]

但它仍然不起作用!

请问有什么线索吗?

答案1

如果您有权访问主配置,则不应使用 .htaccess,请在虚拟主机上下文中添加您的配置,这样可以为您省去很多麻烦,但如果您坚持的话。

回答你的问题: 您粘贴的 .htaccess 中缺少以下指令:

RewriteEngine on

由于加载 mod_rewrite 是不够的,为了在您的服务器中“启用”其功能,您必须在您想要使用它的上下文中添加任何其他指令之前添加此指令。

为了改进您的解决方案:
不过,你甚至不需要那组 mod_rewrite 的“弃用”方法,因为只需要一个:

FallbackResource /index.php 

在您的虚拟主机中将会做同样的事情,没有 mod_rewrite,也没有那么多指令。

相关内容