2011-01-13 1 views
1

私は現在drupalベースのウェブサイトを開発していますが、レガシーシステムと多くの静的ページ/フォルダを有効に保つ必要があります。古い瓦礫を新しいサイトとは別のフォルダに入れておくことができれば幸いです。これは、両方のフォルダを即座にマージする必要があることを意味します。私はこのフォルダ構造が素晴らしいと思った。2つのフォルダを.htaccessのmod-rewriteでマージする

/htdocs/legacy (symlink to old web root) 
/htdocs/index.php 
/htdocs/.htaccess 
/htdocs/other drupal files and folders 
/htdocs/... 

これはすなわちmydomain.com/xyz.phpがアクセスされた場合、サーバーは次の順序でそれを提供しようとする必要があることを意味します。 /レガシーで

  1. /のhtdocsに/サーバ内のファイルやフォルダの場合、この
  2. ファイルやフォルダの場合/これを果たすが、ブラウザのロケーションバーを書き換えないでください。リライトが

にクエリ文字列として渡す他

  • 私は、次の書き換えルールを思い付きました。しかし、それは動作しません。私はレガシーまたはdrupal経由でファイルを提供することができます。

    # 1. server from .htaccess folder 
    
    RewriteCond %{REQUEST_FILENAME} -f [OR] 
    RewriteCond %{REQUEST_FILENAME} -d 
    RewriteRule ^(.*)$ - [NC,L] 
    
    # 2. serve from legacy 
    
    RewriteCond /full-path-to-legacy-folder/%{REQUEST_URI} -f [OR] 
    RewriteCond /full-path-to-legacy-folder/%{REQUEST_URI} -d 
    RewriteRule ^(.*)$ /legacy/$1 [NC,L] 
    
    # 3. else 
    
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_URI} !=/favicon.ico 
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 
    

    あなたの提案がありますか?

    多くの感謝!

  • +1

    正しいと思われるもの - 正確には機能しないものはありますか? –

    答えて

    0

    あなただけのURLを書き換えていて、(mod_phpのような)ファイルを使用して行う必要があり、他の操作があるので、定期的な処理が要求を継続できるようにするために[PT]にご[L]オプションを変更してみてください。

    関連する問題