你如何启用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>
不,你不需要。 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