2017-01-30 25 views
0

fuelphpフレームワークのコントローラからアクションを実行しようとしたときにIveがこの問題に直面したとき、nginxから404メッセージが届きました。見ることができるIm、例えば。 localhost/index.phpまたはlocalhostだけですが、localhost/index.php/login/huehueのようなアクションコントローラにアクセスしようとすると404エラーが発生します。誰でも助けてくれますか?このアプリは、現在、私はここにも、このトラブルに直面していた、アパッチに取り組んでいるが、私は、私はnginxのための同等の設定を検索してみましたfuelphpフレームワークのnginx書き換えルールを設定するには?

その後、

書き換えa2enmod

を実行したときにすべてがうまくなったと私はこれを見つけました等:

位置/ {try_files $ URI $ URI//index.php?$args /index.php?q=$request_uri}

又はこれ:

位置/ {/index.php?/$request_uri
書き換え^;}

が、彼らは私のために働くのdidnt。 Iveはその理由を調べるのに数時間を費やしました。これは、自分のサイトのための私の実際のバーチャルホストファイルの設定です:

server { 
     listen 80; 
     listen [::]:80; 
     root /var/www/nginx/goutmeet; 
     index index.php index.html index.htm index.nginx-debian.html; 

     server_name goutmeet.local www.goutmeet.local; 

     location/{ 
     try_files $uri $uri/ /index.php?$args /index.php?q=$request_uri @handler; 
     } 
location ~ \.php$ { 
       include snippets/fastcgi-php.conf; 
       fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
     } 
location @handler { 
       rewrite^/index.php?/$request_uri; 
     } 
} 

Idは時々nginxのを使用すると、Apacheのより良いオプションであるため、これを解決する方法を知っているのが大好き、とfuelphpフレームワークと、この問題を有し、かつ使用することができません一緒にこの2つの素晴らしいツールはひどいです。 ありがとうございます。

答えて

0

try_filesディレクティブは、1つのデフォルトアクションを持つことができます。あなたは3つ!詳細については、this documentを参照してください。

は、いずれかを選択します。私はあなたのアプリケーションに適したデフォルトのアクションであるかわからない

try_files $uri $uri/ /index.php?$args; 
try_files $uri $uri/ /index.php?q=$request_uri; 
try_files $uri $uri/ @handler; 

。彼らはすべてPHPコントローラにリクエストを送信しますが、パラメータのセットは異なります。

最初のケースはクエリ文字列を渡します。 2番目のケースは要求URIを含む単一のパラメータを渡します。 3番目のケースは指定された場所で書き換えを呼び出します。

+0

申し訳ありませんが、3つすべて個別に試しても同じ結果が得られました。そして、nopexを再起動/再ロードすることを忘れていませんでした。ご協力いただきありがとうございます –

0

私は、configファイルに次の行を追加し、この問題の回避策が見つかりました:

error_page 404 /index.php; 

私が知っているが最善の解決策ではありませんが、その私のために働いた唯一のものとなって。私の意見では、すべてのルートはWebサーバーではなく、フレームワークによって管理されるべきであるからです。

これは誰かを助けることを望みます。

関連する問題