如果我理解正确,我需要在httpd.config
中添加一些内容来启用mod_rewrite。如果是这样,我需要在httpd.conf
或apache.conf
中添加什么内容?请具体操作系统。
答案 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
使用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