我已經在個人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測試,此次它將被傳遞。