web-dev-qa-db-ja.com

htaccessリダイレクトが機能しないのはなぜですか?

次のような簡単なhtaccessリダイレクトを設定しました(これは.htaccessファイル全体です):

Options +FollowSymLinks

RewriteEngine On

Redirect 301 /something http://something.com/something.php

次に、この.htaccessを含むサイト、つまりmyredirectsite.com/somethingをロードすると、次の404になります。

The requested URL /something was not found on this server.

Apache/2.2.3 (Red Hat) Server at myredirectsite.com Port 80

そしてログ:

[2012年7月10日14:25:46] [エラー] [クライアントxx.xx.xxx.xx]ファイルが存在しません:/ home/sites/scp/something

何かがファイルではなく、何かが存在しません。 RedirectをRewriteと同じように使用できると想定していますが、実際に存在するファイルに対してリダイレクトを行う必要があるようです。

「何か」のファイルを作成しましたが、空のファイルを読み込もうとしました。リダイレクトなし。

これを機能させるために何が欠けていますか?

4
willdanceforfun

確認してください

AllowOverride All

httpd.confファイルに設定されています!

ただし、メインの構成ファイルにアクセスできる場合は、.htaccessファイルではなくそこで構成することをお勧めします。htaccessファイルはサーバーの速度を低下させます。サーバーの負荷が非常に低い場合、これは問題にならない可能性がありますが、小規模なプロジェクトでもベストプラクティスを使用することは同様です。

6
Jenny D

このサーバーで私のhttpd.confファイルがサイトディレクトリのAllowOverrideに構成されていません。それは私が変更した「なし」に設定されていました:

AllowOverride All
1
willdanceforfun