如何在任何操作系统上启用mod_rewrite?

时间:2010-06-28 09:19:31

标签: mod-rewrite php

如果我理解正确,我需要在httpd.config中添加一些内容来启用mod_rewrite。如果是这样,我需要在httpd.confapache.conf中添加什么内容?请具体操作系统。

8 个答案:

答案 0 :(得分:64)

不,mod_rewrite是一个Apache模块,与PHP无关。

要激活模块,httpd.conf中的以下行需要处于活动状态:

LoadModule rewrite_module modules/mod_rewrite.so

要查看它是否已处于活动状态,请尝试将.htaccess文件放入包含该行的网络目录

RewriteEngine on

如果这样做没有丢失500内部服务器错误,并且.htaccess文件被解析,则URL重写有效。

答案 1 :(得分:57)

对于使用Apache2在Debian上启用mod_rewrite的人来说只是一个假设:

检查是否启用了mod_rewrite:

通过运行

在mods_enabled中查找指向该模块的链接
ls /etc/apache2/mods-enabled | grep rewrite

如果输出rewrite.load,则启用模块。 (注意:你的apache2路径可能不是/ etc /,尽管它可能是。)

启用mod_rewrite(如果它还不是):

启用模块(基本上创建我们上面寻找的链接):

a2enmod rewrite

重新加载所有apache配置文件:

service apache2 restart

答案 2 :(得分:10)

在我的情况下,即使在所有这些配置完成后也出现了问题(@Pekka已经提到了httpd.conf和.htaccess文件中的更改)。它只在我添加

后解决
<Directory "project/path">
  Order allow,deny
  Allow from all
  AllowOverride All
</Directory>

到vhost文件中的虚拟主机配置

编辑于2017年9月29日(适用于Apache 2.4&lt;)  Refer this answer

<VirtualHost dropbox.local:80>
DocumentRoot "E:/Documenten/Dropbox/Dropbox/dummy-htdocs"
ServerName dropbox.local
ErrorLog "logs/dropbox.local-error.log"
CustomLog "logs/dropbox.local-access.log" combined
<Directory "E:/Documenten/Dropbox/Dropbox/dummy-htdocs">
    # AllowOverride All      # Deprecated
    # Order Allow,Deny       # Deprecated
    # Allow from all         # Deprecated

    # --New way of doing it
    Require all granted    
</Directory>

答案 3 :(得分:2)

不,你不应该这样做。 mod_rewrite是一个Apache模块。它与php.ini无关。

答案 4 :(得分:0)

模块rewrite_module内置于服务器的大多数情况下

使用.htaccess

http://www.generateit.net/mod-rewrite/

使用Mod Rewrite Generator

答案 5 :(得分:0)

网络解决方案提供建议将php.ini放入cgi-bin以启用mod_rewrite

答案 6 :(得分:0)

如果它与托管网站有关,那么请求您的托管或者如果您想在本地计算机上启用它,那么请检查此youtube分步教程,与在wamp apache中启用重写模块相关 https://youtu.be/xIspOX9FuVU?t=1m43s
Wamp服务器图标 - &gt; Apache - &gt; Apache模块并检查重写模块选项 应该检查它,但在那之后wamp需要重启所有服务

答案 7 :(得分:-3)

为了使用mod_rewrite,您可以在终端中输入以下命令:

 $ su

 $ passwd **********

 # a2enmod rewrite

之后重启apache2
 # service apache2 restart

 # /etc/init.d/apache2 restart

 # service apache2 restart