2016-03-28 1 views
0

ローカルのWordPressウェブサイトのホームページは正常に動作しますが、mod_rewriteは動作しません。だから、ホームページは機能しますが、リンクをクリックするとただちにNot Foundとなります。このエラーのmod_rewrite mampを正しく有効にする方法は?

ログ出力:私の理解あたりとして

[error] [client 127.0.0.1] File does not exist: /Applications/MAMP/htdocs/myweb/my-web-page-that-has-to-work, referer: http://myweb.dev/ 

、エラーがデータベースからページを取得TOTためにではなくmod_rewriteを使用しての特定のページを検索することを意味します。

httpd.conf関連するコンテンツ:

# Virtual hosts, uncommented include 
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf 

... 

# AllowOverride All is here 
<Directory "/Applications/MAMP/htdocs"> 
Options All 
AllowOverride All 
Order allow,deny 
Allow from all 
XSendFilePath "/Applications/MAMP/htdocs" 
</Directory> 

httpd-vhosts.conf関連するコンテンツ:

<VirtualHost *:80> 
DocumentRoot /Applications/MAMP/htdocs 
ServerName localhost 
</VirtualHost> 

<VirtualHost *:80> 
DocumentRoot "/Applications/MAMP/htdocs/myweb" 
ServerName myweb.dev 
ServerAlias www.myweb.dev 
ErrorLog "/private/var/log/apache2/myweb-error_log" 
CustomLog "/private/var/log/apache2/myweb-access_log" common 
</VirtualHost> 

それが動作するように取得する方法上の任意の手がかり?

答えて

1

まず、Apacheがモジュールをロードしていることを確認します。参照:

How to enable mod_rewrite for Apache 2.2が続い

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
</IfModule> 

フォルダ内の.htaccessファイルにこれを追加したり、ちょうどこのようなあなたのhttpd-vhosts.confに追加します。 を修正:

<VirtualHost *:80> 
    DocumentRoot "/Applications/MAMP/htdocs/myweb" 
    ServerName myweb.dev 
    ServerAlias www.myweb.dev 
    ErrorLog "/private/var/log/apache2/myweb-error_log" 
    CustomLog "/private/var/log/apache2/myweb-access_log" common 


    <Directory "/Applications/MAMP/htdocs/myweb"> 
     AllowOverride All 
     Allow from all 

     <IfModule mod_rewrite.c> 
      RewriteEngine On 
      RewriteBase/
     </IfModule> 

    </Directory> 

</VirtualHost> 

は今WPのためのあなたの書き換えルールを追加し、それが動作するかどうかを確認します。

あなたのフォルダの中にApacheがモジュールをPHPスクリプトでロードしているかどうかを確認することができます。これを試してそこから進んでください。まずMAMPのApacheモジュールをロードすることを確認してください

<?php 

if (in_array('mod_rewrite', apache_get_modules())) { 
    echo "Yes, Apache supports mod_rewrite."; 
} 

else { 
    echo "Apache is not loading mod_rewrite."; 
} 
+0

ありがとうございますが、私はosx用のMAMPを使用していますが、a2enmodというものはありません。また、 'IfModule'をそこに置こうとしましたが、Apache Serverは起動しません。 – FilipLuch

+0

** RewriteEngine On **と** AllowOverride All **をVirtualhostに追加しようとしましたか? –

+0

サーバーは起動しません。行を削除したときにのみ動作します – FilipLuch

0
  1. 。 MAMPはこれをデフォルトで有効にしています。
  2. 私はJoomlaのためにこれを作った。 Wordpressは似ているはずです。 Macでは、ルート(htdocs/yourwebsite /)のhtaccess.txtの名前を変更することはできません
  3. 隠しファイルを表示するアドオンを使用する代わりに、Filezillaを開いてそこのローカルファイルの名前を変更するのが一番簡単です。通常のwordpress htaccessを使用して、名前を.htaccessに変更します。
  4. Wordpress-backendでいつものようにアクティブに書き換えます。
関連する問題