如何为Apache 2.2启用mod_rewrite

我已经在个人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


#1楼

在Ubuntu中: 服务器

跑: ide

a2enmod rewrite

而后: wordpress

service apache2 restart

mod_rewrite如今将启用! 测试


#2楼

若是不是上述工做尝试编辑/ 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

这对我有用


#3楼

什么对我有用(在ubuntu中):

sudo su
cd /etc/apache2/mods-enabled
ln ../mods-available/rewrite.load rewrite.load

另外,如前所述,请确保在/etc/apache2/sites-available/default的相关部分中设置AllowOverride all


#4楼

若是您知道问题的根源,有多种方法能够解决此问题。

问题1

首先,您的apache没有安装或启用mod_rewrite.c模块可能会出现问题。

所以,您必须按以下方式启用它

  1. 打开你的控制台并输入它,这个:

    sudo a2enmod rewrite

  2. 重启你的apache服务器。

    service apache2 restart

问题2

  1. 除了上述内容以外,若是它不起做用,您还能够从apache conf文件(apache2.conf,http.conf或000-default文件)更改覆盖规则。

  2. 找到“目录/ var / www /”

  3. 将“覆盖无”更改成“覆盖全部”

问题3

若是您收到错误,指出未找到重写模块,那么可能您的userdir模块未启用。 所以,您须要启用它。

  1. 在控制台中输入如下内容:

    sudo a2enmod userdir

  2. 而后尝试启用重写模块,若是仍未启用(如上所述)。

要进一步阅读此内容,您能够访问如下网站: http//seventhsoulmountain.blogspot.com/2014/02/wordpress-permalink-ubuntu-problem-solutions.html


#5楼

打开终端和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 restartservice apache2 restart重启你的apache

再次进行干净的URL测试,此次它将被传递。

相关文章
相关标签/搜索