web-dev-qa-db-ja.com

mod_rewriteが機能しない

サーバー管理は初めてですが、新しいVPSでLAMPセットアップを実行できました。他のサーバーで動作するいくつかのWebファイルをアップロードしましたが、/ var/log/Apache2/error.logファイルに「ファイルが存在しません」というエラーが表示されるようです。ホームページは私のスクリプトで問題なくロードされますが、他のページはロードされません。

.htaccessファイルコード

    Options +FollowSymlinks
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?r=$1 [L,QSA]

サーバーでmod_rewriteを有効にして、作成したphpinfo()ページで実行されていることを確認できます。この問題が発生している理由がわからないだけです。他に投稿する必要がある場合は、お知らせください:)

23
RhapX

サイトまたは仮想ホストに、.htaccessファイルを処理するための適切な権限が付与されていないようです。意図的に構文エラーを作成することで簡単にテストできます。サイトがクラッシュしない場合、ファイルは無視されます。

メインのhttpd.confファイルで次のようなことを試してください:

<Directory "/path/to/your/site">
    AllowOverride All
</Directory>

...またはこれ(あなたの好みに):

<VirtualHost *:80>
    AllowOverride All
</VirtualHost>
46

この問題が発生したとき、/etc/Apache2/sites-enabled/000-defaultAllowOverride All、 しかし /etc/Apache2/Apache2.confには、Directoryと同じエントリがAllowOverwrite None。両方の場所を確認してください!

10
Richard Keene