1

Apache 2.2.22 と PHP 5.3.15 を使用して、自分のオンライン サイトをローカル サーバーに複製しようとしている初心者です。ただし、私のローカルホストは .htaccess ファイルを読み取っていません。サンプルの httpd.conf ファイルを変更したところ、localhost/index.php で始まるサイトが正しく登録されました。しかし、localhost/index に移動すると、「見つかりません」というエラーが表示されます。.htaccess ファイルは、私の ISP を通じて問題なく動作します (つまり、mysite.com/index は問題なく動作します)。

最初は、.htaccess の書き換えに問題があると思っていました。
ErrorDocument 404 /404.php
RewriteEngine on
RewriteRule ^([a-zA-Z0-9]+)(/[a-zA-Z0-9/]+)?$ /$1\.php$2 [L]

しかし、私のローカルホストも 404 エラーを読み取っていないため、httpd.conf ファイルだと思います。調査の結果、AllowOverride が「All」に切り替えられていない場合に同様の問題が発生することが判明しました。これが私が持っていたものです。

<Directory "D:/mywebfile/webserver/website/public_html">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

AllOverride All に切り替えると、次のログ エラーで「Internal Server Error」が表示されます

httpd.exe: ServerName に 10.0.99.35 を使用して、サーバーの完全修飾ドメイン名を確実に特定できませんでした [Sat Aug 04 15:15:55 2012] [notice] Child 9152: Child process is running
[Sat Aug 04 15:15: 55 2012] [お知らせ] 子 9152: 開始ミューテックスを取得しました。
[Sat Aug 04 15:15:55 2012] [通知] 子 9152: 64 個のワーカー スレッドを開始しています。
[Sat Aug 04 15:15:55 2012] [notice] 子 4764: start ミューテックスを解放しました
[Sat Aug 04 15:15:56 2012] [notice] Child 4764: すべてのワーカー スレッドが終了しました。
[2012 年 8 月 4 日 15:15:56] [通知] 子 4764: 子プロセスが終了しています
[2012 年 8 月 4 日 15:15:56] [通知] 子 9152: ポート 80 でリッスンするスレッドを開始します。
[Sat Aug 04 15:15:58 2012] [alert] [client 127.0.0.1] D:/mywebfile/mywebserver/website/public_html/.htaccess: >無効なコマンド 'RewriteEngine'、おそらくスペルが間違っているか、含まれていないモジュールによって定義されていますサーバー構成で

私もコメントを外そうとしました

#LoadModule rewrite_module modules/mod_rewrite.so

httpdファイルにあるが、それでも同じ「内部サーバーエラー」が発生する

これは単純な問題のように思えますが、単純な解決策をすべて使い果たしました。どんな助けでも大歓迎です(そして、私が引き抜いていない小さな髪を救ってください)。

ありがとうございました!

4

1 に答える 1

2

問題はRewriteEngineコマンドにあり、ではありませんAllowOverride。これにより、書き換えコマンドがアクティブになります。

mod_rewriteをアクティブ化することは、あなたが示す方法です。正しいhttpd.confファイルを編集していること、および再試行する前にサーバーを再起動していることを確認してください。

于 2012-08-04T20:50:11.673 に答える