我已经在个人Vista机器上安装了新的Apache 2.2,一切正常,除了mod重写。 php
我没有注释 html
LoadModule rewrite_module modules/mod_rewrite.s
可是个人重写规则都没有,即便是简单的重写规则 apache
RewriteRule not_found %{DOCUMENT_ROOT}/index.php?page=404
我正在使用的全部规则都在处理个人托管,因此它们应该没问题,因此个人问题是,apache配置中是否有任何隐藏的东西,能够阻止mod重写? ubuntu
在Ubuntu中: 服务器
跑: ide
a2enmod rewrite
而后: wordpress
service apache2 restart
mod_rewrite
如今将启用! 测试
若是不是上述工做尝试编辑/ etc / apache2 / sites-enabled / 000-default 网站
几乎在顶部你会发现 spa
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory>
将AllowOverride None
更改成AllowOverride All
这对我有用
什么对我有用(在ubuntu中):
sudo su cd /etc/apache2/mods-enabled ln ../mods-available/rewrite.load rewrite.load
另外,如前所述,请确保在/etc/apache2/sites-available/default
的相关部分中设置AllowOverride all
若是您知道问题的根源,有多种方法能够解决此问题。
问题1
首先,您的apache没有安装或启用mod_rewrite.c模块可能会出现问题。
所以,您必须按以下方式启用它
打开你的控制台并输入它,这个:
sudo a2enmod rewrite
重启你的apache服务器。
service apache2 restart
问题2
除了上述内容以外,若是它不起做用,您还能够从apache conf文件(apache2.conf,http.conf或000-default文件)更改覆盖规则。
找到“目录/ var / www /”
将“覆盖无”更改成“覆盖全部”
问题3
若是您收到错误,指出未找到重写模块,那么可能您的userdir模块未启用。 所以,您须要启用它。
在控制台中输入如下内容:
sudo a2enmod userdir
而后尝试启用重写模块,若是仍未启用(如上所述)。
要进一步阅读此内容,您能够访问如下网站: http : //seventhsoulmountain.blogspot.com/2014/02/wordpress-permalink-ubuntu-problem-solutions.html
打开终端和typin a2enmod rewrite
,它将启用Apache的mod_rewrite
模块。
而后转到/etc/apache2/sites-available
并编辑默认文件。 (为此,您必须具备此文件和站点可用文件夹的可写权限。)
在下面用现有的第4到14行替换
DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>
如今经过/etc/init.d/apache2 restart
或service apache2 restart
重启你的apache
再次进行干净的URL测试,此次它将被传递。