2017-09-15 5 views
1

私は少し迷ってしまったと思います。既存のApache .htaccessからNginx Configへ

私はいくつかのソリューションを試しましたが、私は1つの部分を取得しません。すべてがindex.phpによって処理されなければならないし、それをnginxで動作させることはできません。私は素晴らしいNginxを勉強し続けますが、本当に誰かからの迅速な助けに感謝します。

私の.htaccess:

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

そして、私のnginxの設定ファイルは次のとおりです。

server { 
     listen 80; 
     listen [::]:80; 

     root /folder; 
     index index.php index.html index.htm index.nginx-debian.html; 

     server_name hostname.com; 

     location/{ 
     try_files $uri $uri/ =404; 
      } 

    location ~ \.php$ { 
     try_files = $uri @missing; 
     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
     fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     include fastcgi_params; 
    } 
     location @missing { 
      rewrite^$scheme://$host/index.php permanent; 
} 
} 

誰かが正しい方向に私を指すことができますか?ありがとう

+0

そして正確にあなたの質問は何ですか? 「働かない」とはどういう意味ですか?お読みください:https://stackoverflow.com/help/mcve –

+0

ちょっとMaciej、 私の悪い。私はクライアントが新しいnginxサーバーに持っていたい古いCMSを持っています。問題は、アプリケーションの使用がうまく動作するようにwhatever.phpを "何でも"とし、それを動的見出しとして使用することです。したがって、PHPアプリケーションはindex.phpをホームページとして読み込みます。それ以外のものは見出しになり、特定のページコンテンツのためのmysql参照があります。 – user8614226

+0

これらの詳細すべてを元の質問に編集してください。明確に質問を述べ、望ましくない、望ましい効果を提示するようにしてください。 –

答えて

0

.phpで終わらないURIはすべてlocation /ブロックで処理されます。 Apache .htaccessのルールを実装したい場合は、そのルールを実行する必要があります。詳細については、this documentを参照してください。 location ~ \.php$ブロックで

location/{ 
    try_files $uri $uri/ /index.php?_route_=$uri; 
} 

、あなたが例えば、passing uncontrolled requests to PHPを防ぐ必要があります:

例えば

location ~ \.php$ { 
    try_files $uri =404; 
    ... 
} 
+0

こんにちはRichard、 お返事ありがとうございます。私はstackoverflow.comに来る前に、アボーのソリューションを試してみました。それでも動作しません。これは古いサイトですが、PHPの機能は本当にoldschoolですが、desingは修正されており、cliensはすべてを保持したいと考えています。しかし、それはapache上にあった。私はそれがapaceheで動作することをテストしました。何であれ、here.phpはそのページのタイトルになるでしょう。現時点ではこれがまだまだですが、現在hostname.comはこのリクエストを処理できません。 HTTPエラー500 – user8614226

関連する問題