Apache2 mod_rewrite 不起作用

Apache2 mod_rewrite 不起作用

文件:

<VirtualHost *:27010>
    DocumentRoot /var/www/test/public_html
    <Directory /vaw/www/test/public_html>
            AllowOverride ALL
    </Directory>
</VirtualHost>

端口: Listen 27010

/var/www/test/public_html/.htaccess

RewriteEngine on

给出错误:

/var/www/test/public_html/.htaccess:此处不允许使用 RewriteEngine

请帮忙。尝试过重启,尝试过 a2ensite,a2enmod

答案1

你正在写作AllowOverride ALL。应该是AllowOverride All

文档

配置文件中的指令不区分大小写,但指令的参数通常区分大小写。

通常来说,您应该始终遵循文档中使用的大小写。

另外,你随时可以通过运行来测试你的 apache 配置apachectl -t。它应该可以捕获任何语法错误。

答案2

<VirtualHost *:27010>
    DocumentRoot /var/www/test/public_html
    <Directory /vaw/www/test/public_html>
            AllowOverride All
            Order allow,deny
            Allow from all
    </Directory>
</VirtualHost>

你可能会发现这篇文章很有帮助: https://httpd.apache.org/docs/2.4/howto/htaccess.html

不过,“Allow”指令是 2.4 之前的版本。如果你使用的是 Apache 2.4,你应该看看“Require”指令 https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#require

答案3

DocumentRoot /var/www/test/public_html
<Directory /vaw/www/test/public_html>

正如评论中所述,指令中指定的文件路径中的拼写错误<Directory>似乎是问题所在。/vaw/应该是/var/匹配的DocumentRoot。 如果文件路径不正确,该<Directory>部分将被忽略。

相关内容