如何爲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測試,此次它將被傳遞。

相關文章
相關標籤/搜索