2011-01-10 12 views
1

サイトを再開発しています(CodeIgniterベースのものに置き換えています)。これは現在、繰り返しの手続き型コードが混乱しています。このため、私は全く同じURL構造を保つ必要があります。.htaccessを使用して異なる別名を持つ1つのディレクトリを使用する

同社には、多くの異なる見積もりページがありますが、基本的に同じです。どこでも使用できるクリーンなバージョンを1つ作成しました。

引用システムは/ get-quoteという名前のフォルダにありますが、古いURLが必要なため、そのフォルダはどこにも表示されてはいけません。

私は、次のことが起こるしたいのですが、どのように知らない:/insurancequote.phpにアクセスしているユーザーは、(サーバ上)/取得引用符/ディレクトリをロードする必要があり

(ひいてはでデフォルトのCIルートをロードします)。 CIのベースURLはhttp://www.mysite.com/insurancequote.php(私はそのビットを行うことができる)でなければならないので、ステップ2に移動すると、http://www.mysite.com/insurancequote.php/step2(/ get-quote/step2にマップされます)になります。

第2に、/brokerquote.phpにアクセスするユーザーは、アドレスバー(redirect?)ではなく、サーバーのアクセス/ get-quote/brokerにmysite.com/brokerを表示する必要があります。第3に、多数のブローカ特有のページのうちの1つにアクセスするユーザ、例えば、 mysite.com/brokername1.phpまたはmysite.com/broker/brokername2.php(これらの場所に散らばっていますが、それぞれの場所はわかります)mysite.com/broker/brokername1またはmysiteを表示する必要があります。 co.jp/broker/brokername2。サーバー上で/ get-quote/broker/brokername1または/ get-quote/broker/brokername2にアクセスする必要があります。

If '/insurancequote.php' 
    Dont Redirect 
    Use '/get-quote/' 

If '/brokerquote.php' 
    Redirect '/broker/' 
    Use '/get-quote/broker/' 

// Do the following (manually) for each broker 
If '/brokername1.php' 
    Redirect '/broker/brokername1/' 
    Use '/get-quote/broker/brokername1/' 

If '/brokers/bname2.php' 
    Redirect '/broker/brokername2/' 
    Use '/get-quote/broker/brokername2/' 

If '/mybrokerpage.php' 
    Redirect '/broker/mybroker/' 
    Use '/get-quote/broker/mybroker/' 

これが可能である:

私は私が書いたものとは思わないので、多分sudocodeは助け、完全に明確ですか?もしそうなら、私はそれをどうやってやりますか?

ありがとうございます!

答えて

3

あなたが取るリスクは歴史的な理由から新しいクリーンなコードを台無しにしていることです(そして、次に来る人はあなたに言います、これは混乱です)。

私の場合、適切な解決策は、あなたのアプリケーションではなく、ApacheでのURLの移行を処理することです。あなたが保持したくないrefferenced URLは、410 --Goneというメッセージが表示されます(参照画像など)。新しい一致するページがあるすべての参照ページはになります。301 - 永久に移動右にリダイレクトページ。その後、サーバーのアクセスログを確認した後、もう誰も古いURLをチェックしていない場合は、ルールを削除してください。

あなたはすべての古いURLを知っているし、すべての一致するURL場合は、(速い、またはハッシュファイル)、一致するURLファイルを使用してRewriteMap命令にリダイレクト301を管理します。あなたはハッシュファイルに本当に大きな数のファイルを置くことができます。マッチは速くなければなりません。そして、それはロボットがURLを修正するのを待っている一時的な機能でなければなりません。

+0

+1が合意しました。それは混乱するだろう。 301これを処理するための最良の方法です。 –

+0

ありがとうございますが、私はクライアントに301sがうまくいくことを説得するのに非常に苦労しています。私はあなたの答えを明らかに最良の方法として受け入れましたが、私はApacheのドキュメントを見て、Aliasステートメントを見つけました。それを使ってinsurancequote.phpとbrokerquote.phpエイリアスを/ get-quote 。私は混乱を説明するためにDEVELOPER_README.txtファイルを残しておく必要があります! – Josh

関連する問題