你如何启用mod_rewrite?

如果我理解正确,我需要在php.ini中启用mod_rewrite。 如果这是真的,我需要在php.ini放置什么?

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

要激活模块, httpd.conf的以下行需要激活:

 LoadModule rewrite_module modules/mod_rewrite.so 

看看它是否已经是活动的,试着把一个.htaccess文件放到包含该行的网页目录中

 RewriteEngine on 

如果这个工作没有引发500内部服务器错误,并且.htaccess文件被parsing,URL重写工作。

只需要启用Apache2上的mod_rewrite就可以了:

要检查是否启用了mod_rewrite:

通过运行查看mods_enabled链接到模块

 ls /etc/apache2/mods-enabled | grep rewrite 

如果输出rewrite.load那么模块被启用。 (注意:你的apache2path可能不是/ etc /,尽pipe很可能是)。

要启用mod_rewrite,如果它不是已经

启用模块(主要是创build我们正在寻找的链接):

 a2enmod rewrite 

重新加载所有的Apacheconfiguration文件:

 service apache2 restart 

在我的情况下,即使所有这些configuration完成(@Pekka提到了httpd.conf&.htaccess文件的变化),问题仍然出现。 只有在我添加后才解决

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

到vhost文件中的虚拟主机configuration

编辑于29/09/2017 请参阅此答案

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

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

使用.htaccess

使用国防部重写发生器在http://www.generateit.net/mod-rewrite/

不,你不需要。 mod_rewrite是一个Apache模块。 它与php.ini无关。

networking解决scheme提供了build议,把一个php.ini在CGI-bin启用mod_rewrite

如果它与托pipe网站相关,然后问你的主机,或者如果你想启用它在本地机器然后检查这一步一步一步的教程相关的启用重写模块在阿帕奇https://youtu.be/xIspOX9FuVU?t=1m43s
Wamp服务器图标 – > Apache – > Apache模块,并检查重写模块选项,它应该检查,但之后,需要重新启动所有服务

为了使用mod_rewrite,你可以在terminal中input以下命令:

  $ su $ passwd ********** # a2enmod rewrite 

之后重新启动apache2

  # service apache2 restart # /etc/init.d/apache2 restart 

要么

  # service apache2 restart