2016-10-25 16 views
0

ファイル名を変更しました。永続的なリダイレクト(301)を作成したいと思います。Htaccessリダイレクト単一ファイル301

私の.htaccessファイルがサブディレクトリにある

http://example.com/js

私はこのコード、リダイレクトが機能してhttp://example.com/js/newfilename.js

http://example.com/js/oldfilename.js

をリダイレクトする:

RewriteEngine On 
RewriteRule ^oldfilename.js$ newfilename.js [L] 

しかし、 URLは書き換えられません。 [L][L,R=301]に変更すると、URLは書き換えられますが破損しています。書き換えられたURLは、httpホスト(http://example.com)の後にファイルシステム内のファイルへの絶対パスが続きます。

答えて

0

あなたは、外部リダイレクトを実行し、書き換えのためのベースを指定する必要があります。

RewriteEngine On 
RewriteBase "/path/to/files/" 
RewriteRule ^oldfilename\.js$ newfilename.js [L,R=301] 

しかし、単純にHTTPホスト構成でAliasを定義することがずっと容易になるだろう:

Alias /path/to/oldfilename.js /path/to/newfilename.js 

一般的には、常には、そのようなルールを01を使用するのではなく、実際のホスト構成内に配置することをお勧めしますスタイルファイル。これらのファイルは悪名高いエラーが発生しやすく、デバッグが難しく、HTTPサーバーの速度を遅くします。 ではなく、がホスト構成(本当に安価なホスティングプロバイダを参照してください)にアクセスできるか、またはアプリケーションが独自の書き換えルールを書き込む必要がある場合にのみ提供されます(これはセキュリティの悪夢です)。

関連する問題