如何为虚拟主机启用 mod_rewrite

如何为虚拟主机启用 mod_rewrite

mod_rewrite 规则在虚拟主机上不起作用。我希望 cakephp 也能这样。

是否有需要添加在虚拟主机文件内的设置?

答案1

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

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

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

然后保存。请记住,您应该具有 root 权限才能编辑和保存此文件。
现在重新启动 apache。

service apache2 reload

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

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

<?php    
phpinfo();    
?>

从服务器加载它。在Loaded Modules部分下检查它是否mod_rewrite存在。如果存在,则表示已启用。

答案2

启用重写使用

# sudo a2enmod rewrite

然后使用以下命令重新启动 apcahe2

# service apache2 restart

通过添加在虚拟主机中启用

AllowOverride FileInfo

然后使用以下命令重新启动 apcahe2

# service apache2 restart

例子

<Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            # I Have below line from none to FileInfo
            AllowOverride FileInfo
            Order allow,deny
            allow from all
    </Directory>

相关内容