我已经在我的Vista机器上安装了新的Apache 2.2,一切都很好,除了mod重写。
我已经激活
LoadModule rewrite_module modules/mod_rewrite.s
但我的重写规则都没用,即使是像这样简单的
RewriteRule not_found %{DOCUMENT_ROOT}/index.php?page=404
我使用的所有规则都在我的主机上工作,所以他们应该是好的,所以我的问题是,在apache配置中有任何隐藏的东西,可以阻止mod重写?
<编辑>
刚刚注意到你说了mod_rewrite。S代替mod_rewrite。所以-希望这是您的问题中的拼写错误,而不是httpd.conf文件中的拼写错误!:)
< /编辑>
我更习惯于在Linux上使用Apache,但有一天我不得不这样做。
首先,查看一下Apache安装目录。(我假设你安装到“C:\Program Files”这里)
查看一下文件夹:“C:\Program Files\Apache Software Foundation\Apache2.2\modules”,并确保有一个名为mod_rewrite的文件。在这里。(应该是,它是作为默认安装的一部分提供的。
接下来,打开“C:\Program Files\Apache Software Foundation\Apache2.2\conf”,然后打开httpd.conf。确保台词:
#LoadModule rewrite_module modules/mod_rewrite.so
注释:
LoadModule rewrite_module modules/mod_rewrite.so
此外,如果您希望在默认情况下启用RewriteEngine,则可能需要添加如下内容
<IfModule mod_rewrite>
RewriteEngine On
</IfModule>
到httpd.conf文件的末尾。
如果不是,请确保指定
RewriteEngine On
在你的。htaccess文件中。
<编辑>
刚刚注意到你说了mod_rewrite。S代替mod_rewrite。所以-希望这是您的问题中的拼写错误,而不是httpd.conf文件中的拼写错误!:)
< /编辑>
我更习惯于在Linux上使用Apache,但有一天我不得不这样做。
首先,查看一下Apache安装目录。(我假设你安装到“C:\Program Files”这里)
查看一下文件夹:“C:\Program Files\Apache Software Foundation\Apache2.2\modules”,并确保有一个名为mod_rewrite的文件。在这里。(应该是,它是作为默认安装的一部分提供的。
接下来,打开“C:\Program Files\Apache Software Foundation\Apache2.2\conf”,然后打开httpd.conf。确保台词:
#LoadModule rewrite_module modules/mod_rewrite.so
注释:
LoadModule rewrite_module modules/mod_rewrite.so
此外,如果您希望在默认情况下启用RewriteEngine,则可能需要添加如下内容
<IfModule mod_rewrite>
RewriteEngine On
</IfModule>
到httpd.conf文件的末尾。
如果不是,请确保指定
RewriteEngine On
在你的。htaccess文件中。
当我第一次纠结于mod_rewrite规则忽略我的流量时,我(沮丧地)发现我把它们放在了错误的<VirtualHost>中,这意味着我的流量将忽略所有它们,无论它们写得多好。确保这不会发生在你身上:
#更改日志位置以适合您的系统。
RewriteLog /var/log/apache-rw.log
RewriteLogLevel 2
如果您重新启动Apache,这些参数将被激活,因此您可以重新使用它们并密切监视mod_rewrite行为。一旦你的问题解决了,把RewriteLogLevel调低,庆祝一下。
在我100%的经验中,我发现RewriteLog帮助我发现了重写规则的问题。我怎么推荐都不为过。祝您在故障排除中好运!
此外,这个书签是你最好的朋友:
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritelog
如果你知道问题的根源,有很多方法可以解决这个问题。
问题1
首先,这可能是apache没有安装或启用mod_rewrite.c模块的问题。
因此,您必须按如下方式启用它
打开控制台,输入以下内容:
Sudo a2enmod重写
重新启动apache服务器。
Service apache2 restart
问题2
除此之外,如果它不起作用,您还可以更改apache conf文件(apache2.conf, http.conf或000-default文件)的覆盖规则。
查找目录/var/www/
将“Override None”更改为“Override All”
问题3
如果你得到一个错误说重写模块没有找到,那么可能是你的userdir模块
未启用。因此,您需要启用它。
在控制台中输入以下内容:
Sudo a2enmod userdir
然后尝试启用重写模块,如果仍然未启用(如上所述)。
欲了解更多信息,请访问该网站:http://seventhsoulmountain.blogspot.com/2014/02/wordpress-permalink-ubuntu-problem-solutions.html