.htaccess /書き換えルールのnginxサポート?Apacheとの違いは?


16

私はかなり長い間Apache httpサーバーで作業しており、最終的には他の動的コンテンツマシンとともに静的コンテンツサーバーに移行しました。

私は疑問に思っていました、nginxは「.htaccess」ファイル、およびmod_rewriteなどをサポートしていますか?

私は構文に非常に慣れているので、(構文)の違いは何であり、Apacheの設定からnginxに移行するような学習曲線はどのようなものなのか疑問に思っていました。

回答:


15

nginxの書き換え構文はmod_rewriteの対応するものよりもずっときれいです。

mod_rewriteルール:

 RewriteRule ^[a-z0-9_-]*-f([0-9]+)/?(p([0-9]+)\.html)?$ /viewforum.php?f=$1&start=$3 [QSA,L,NC]

nginxになります:

rewrite ^/[a-z0-9_-]*-f([0-9]+)/?(p([0-9]+)\.html)?$ /viewforum.php?f=$1&start=$3 last;

しかし、.htaccessのサポートはありません...

編集:http: //example.com/~username/ urlsをnginxでサポートする別の例:

location ~ /~([a-zA-Z0-9]*)/(.*) {
    root /home/;
    autoindex on;
    index index.html;
    rewrite ^/~([a-zA-Z0-9]*)/(.*)$ /$1/www/$2 break;
}


4

nginxにはmod_rewriteと同等の機能があり、ドキュメントはこちらにあります。私はnginxを使用していませんが、ドキュメントは設定が完全​​に異なっているように見えますが、それが何をしているのかを理解するのはそれほど難しくないはずです。wikiには多くの例があるようです。

Apacheでできるように、ディレクトリごとの構成ファイルを持つことができる場合は答えられません。apacheを使用することでそれを期待するようになったので、できれば私は驚かないでしょう。


0

NGINXは、 'include'ディレクティブを介して多くのファイルに設定を持つことをサポートします。基本的に、サブ構成をロードして所定の場所に配置します。また、ジョーカーキャラクターもサポートしているため、それらの多くを一度に簡単に読み込むことができます。

(私の意見では)唯一の制限は、構成が変更されたときにリロードする必要があるということです。そのため、一部の構成を持つユーザーには、nginx configを再ロードする権限が必要になる場合があります。

/etc/ini.d/nginx force-reload(centosで)

私自身のアプリ(仮想ホスト)がたくさんある多くのサーバーでNGINXを使用しているため、それを回避する方法があるのか​​、それとも違うやり方をする方法があるのか​​、私には本当にわかりません。これは、NGINXが共有ホスティングでは理想的ではないことを意味します。

それにも関わらず、設定は厄介なXMLファイルよりもずっと読みやすいので、NGINXが大好きです。味の質問だと思います。それがあなたの場合に重要な場合、他の良い点は明らかに速度です。

がんばろう

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.