如何为虚拟主机启用 mod_rewrite

use*_*hkj 10 virtualhost apache2 12.04

mod_rewrite 规则不适用于虚拟主机。我想要这个用于cakephp。

虚拟主机文件中是否有添加设置?

Nab*_*bil 24

如果您使用的是最新的 apache 版本 2.4+,那么这里是如何启用 mod_rewrite 的过程。使用您喜欢的文本编辑器

转到“etc/apache2/
打开” apache2.conf
改变

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)

然后保存。请记住,您应该拥有编辑和保存此文件的 root 权限。
现在重启apache。

service apache2 reload
Run Code Online (Sandbox Code Playgroud)

此过程将为包括虚拟主机在内的 apache 服务器启用 mod_rewrite。

您还可以检查它是否已启用。创建一个php脚本

<?php    
phpinfo();    
?>
Run Code Online (Sandbox Code Playgroud)

从服务器加载它。在Loaded Modules部分下检查是否mod_rewrite存在。如果它在那里,那么它被启用。


Bab*_*ton 6

启用重写使用

# sudo a2enmod rewrite
Run Code Online (Sandbox Code Playgroud)

然后使用重新启动apcahe2

# service apache2 restart
Run Code Online (Sandbox Code Playgroud)

通过添加在 Virtualhost 中启用

AllowOverride FileInfo
Run Code Online (Sandbox Code Playgroud)

然后使用重新启动apcahe2

# service apache2 restart
Run Code Online (Sandbox Code Playgroud)

例子

<Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            # I Have below line from none to FileInfo
            AllowOverride FileInfo
            Order allow,deny
            allow from all
    </Directory>
Run Code Online (Sandbox Code Playgroud)