1

nginxに移行しようとしています...

次の mod_rewrite コマンドを使用して、Apache でアプリを実行しています。

RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/([a-z\-0-9]+)/(.*)$ /$1/index.php/$2 [E=USERKEY:$1,L]

私たちが使用しているPHPサポートは、次の形式でアイテムを処理します。

/[USERKEY]/index.php/[module]/[action]/[etc...]

すべてのヒット (ディスク上に静的ファイルがない場合) をindex.phpファイルに渡し、次の形式で処理します。

http://www.myapp.com/bobsmith/rockstar/add?q=45678

に変換されます:

/var/www/some_static_path/bobsmith/index.php/rockstar/add?q=45678

一部の CMS 製品が同様のことを行うことを知っており、多くの例を見つけましたが、この奇妙な USERKEY ペイロード ( index.php のパスの一部) が構成に問題を引き起こしています。さらに、index.php の後のスラッシュ (/) の処理に苦労しました。エラー ログには次のように表示されます。

"/bobmsith/index.php/login" failed (20: Not a directory)

参照しようとすると: http://www.myapp.com/bobsmith/login

書き換え、if(s)、さまざまなタイプの場所の正規表現、try_files、fastcgi_split_path_info を使用してみました...成功するためのカクテルが見つかりません!

あらゆる/すべての助けに感謝します。皆さんありがとう!

4

0 に答える 0