2016-11-19 18 views
-1

私は静的なバージョンにローカライズし、新しいドメインのサブフォルダでそれをホスティングすることによって、動的サイトをアーカイブしています。.htaccess urlリダイレクトし、aspページにのみ.htmlを追加します

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^oldsite\.com$ 
RewriteRule (.*) https://newsite.com/v4/$1 [R=301,L] 

しかし、私は.aspで終わるすべてのファイルに.htmlを追加するためのgrepをうまくするのに苦労しています:リダイレクトを行う方法を説明する文書の多くがありました

http://newsite.com/v4/main.asp.html

http://oldsite.com/main.asp

答えて

0

コードを使用すると、ファイル名の拡張子を持つ問題を除いて作品を投稿した場合は、単にこのようにそれを変更することができます。

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^example.org\.org$ 
RewriteRule ^(.*)\.asp$ https://example.org/v4/$1.html [R=301,NC,L] 

これは明らかに任意のクエリパラメータを処理しません。しかし...


と一般的なヒントをあなたがしようとして静的なものに動的なサイトを回すときには、とにかく動作しませんので、私は単に問題ではありませんことを前提としています。あなたは常にこのように配置することを好む必要があります.htaccess形式のファイルを使用するのではなく、httpサーバーのホスト構成内のルール。これらのファイルは悪名高いエラーが発生しやすく、デバッグが難しく、サーバーの速度が遅くなります。彼らは、あなたがホスト構成(本当に安いホスティングサービスプロバイダを読む)を持っていないか、独自の書き換えルールを書くことに頼っているアプリケーションを持っている場合にのみ、最後のオプションとして提供されます(これは明白なセキュリティの悪夢です)。

+0

ありがとうございます!幸いなことに、古いサイトにはディレクトリ(oldsite.com/products)がないので、これはうまく動作しますが、すべての状況で機能しないと想像してください。また、これをやっている間に取り上げたもう1つのヒント - 302リダイレクトとシークレットブラウジングを使用して、ブラウザが永続的なリダイレクトを正当に覚えているのを避ける。 – Daniel

+0

ああ、ルートはディレクトリなので、私はちょうどあなたの提案とルールのカスケードの下に元の書き換えを追加しました - あなたはLフラグを保持しています。 – Daniel

+0

リクエストパスのフォルダに問題はありません。問題なく処理する必要があります。追加の規則が必要な唯一の状況は、処理されたファイル拡張子の末尾に_not_という要求がある場合です。 – arkascha

関連する問題