次のような簡単な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と同じように使用できると想定していますが、実際に存在するファイルに対してリダイレクトを行う必要があるようです。
「何か」のファイルを作成しましたが、空のファイルを読み込もうとしました。リダイレクトなし。
これを機能させるために何が欠けていますか?
確認してください
AllowOverride All
httpd.confファイルに設定されています!
ただし、メインの構成ファイルにアクセスできる場合は、.htaccessファイルではなくそこで構成することをお勧めします。htaccessファイルはサーバーの速度を低下させます。サーバーの負荷が非常に低い場合、これは問題にならない可能性がありますが、小規模なプロジェクトでもベストプラクティスを使用することは同様です。
このサーバーで私のhttpd.confファイルがサイトディレクトリのAllowOverrideに構成されていません。それは私が変更した「なし」に設定されていました:
AllowOverride All