2017-04-10 25 views
0

私はApacheからnginxにアプリケーションを移動していますが、書き換え部分が残っています。htaccessの書き換えをnginxの書き換えに変換する

私のApacheの.htaccessにはこれがあります。基本的に、私は、私は、彼らが行くと、クエリのVARを処理するために必要な場所へのルートの訪問者をすることができ、それを破壊する非常に基本的な部分を持っているindex.phpの内側に私のindex.phpへの問い合わせVARを含むすべて

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/?$ index.php?p=$1 [QSA,L] 

を送信様々なテーマのPHPファイルでも

if (isset($_GET['p'])) { 
    $page = explode('/', $_GET['p']); 
} else { 
    $page = NULL; 
} 

以降のスクリプトで

if ($page) { 
    } if ($page[0] == "stream") { 
     if (isset($page[1])) { 
      // Blah 
     } 
    } 
} 

、私はURLをつかんいたことは$_GET['id']またはとvarsはは、さまざまな機能を実行します。

http://example.com/verify?code=blah

このURIはverify.phpと呼ばれるテーマファイルであることが判明し、verify.php内では、コードのURL VARグラブされていることを確認し、index.phpのに入ってきます。

これをnginxで複製しようとしています。

 location/{ 
#    try_files $uri $uri/ =404; 
       rewrite ^(.*)/?$ index.php?p=$1 last; 
#    try_files $uri $uri/ /index.php?p=$args; 
#    try_files $uri $uri/ /index.php?p=$query_string; 
     } 

は私もexample from this answerを試してみたが、それでも動作しない:私は、以下試してみました。

ここで私は私のセットアップにそれを適用しようとしました:

location/{ 
     rewrite ^(.*)/?$ index.php?p=$1 last; 

     try_files $uri $uri/ @rewrite; 
} 
location @rewrite { 
     rewrite ^(.*)/?$ index.php?p=$1 last; 
} 

コメントのセクションでは、私の試行錯誤です。 Apacheをnginx形式に複製する方法についての洞察はありますか?

+0

これは重複としてフラグを立てることができます。最初に参照された答えは私の問題を解決しませんでしたが、最終的にはそれを行いました。おかげで – Pat

答えて

0

あなたはthisウェブサイトを試してみましたか?

location/{ 
    if (!-e $request_filename){ 
     rewrite ^/(.*)/?$ /index.php?p=$1 break; 
    } 
} 
+0

面白いことに、私はページを読み込むのではなくページをダウンロードしたいと思っています。たとえば、私がhttp://example.com/aboutに行くと、私は「約」をダウンロードしたいと思っています。私がそれをダウンロードした場合、内容は生のphp 'index.php'ファイルです – Pat

0

私は自分の質問に答えることを憎むが、私の問題のanswer referencedは、実際には正解でした。私はこれが将来誰かを助けることを望んでいる。

私はその回答を少しでも熱望していました。私は書き換えを2度書き込んだので、上のスニペットでは失敗しました。実際の解決策は、私の書き換えを書き換え場所に置くことでした。

location/{ 
      try_files $uri $uri/ @rewrite; 
    } 

    location @rewrite { 
      rewrite ^/(.*)/?$ /index.php?p=$1 last; 
    } 

これまで(これまで)成功しています。 URLを特定のPHPテーマページに書き換え、テーマページにはクエリバーにアクセスできます。