現在、WebサイトをApacheからnginx
に移行していますが、.htaccess
ファイルが機能しません。私のウェブサイトは/usr/share/nginx/html/mywebsite
フォルダー内にあります。 nginx
サーバーで.htaccess
を使用するにはどうすればよいですか?
これは私の.htaccess
ファイルです:
RewriteEngine on
RewriteRule video/watch/([a-zA-Z0-9_@$*-]+)/?$ "videos-single.php?id=$1" [NC]
Nginxは.htaccess
をサポートしていません( here :を参照してください)これはできません。できません。htaccessが必要な場合は、あなたはおそらくそれを間違っています。」)。
あなたには2つの選択肢があります(私が知っているように):
.htaccess
をnginx.conf
にインポートします(おそらく htaccess to nginx converter が役立ちます)これは、nginxでは正式にサポートされていません。この種の機能が必要な場合は、Apacheまたはそれをサポートする他のHTTPサーバーを使用する必要があります。
とは言っても、 公式のnginxの推論 には欠陥があります。これは、ユーザーがしたい方法でユーザーがやりたいことを制限するためです。たとえば、nginxはディレクトリを10秒/分程度ごとに簡単にチェックしたり、inotifyなどのメカニズムを使用したりできます。これにより、すべてのリクエストでチェックする必要がなくなります...しかし、それを知っていることは役に立ちません。 :)
この制限を回避するには、nginxの設定ファイルが表示されるのを待って/etc/nginx/conf.d/
にコピーするスクリプトを作成します。ただし、セキュリティに何らかの影響がある場合があります-nginxには.htaccess
のネイティブサポートがないため、構成ファイルで許可される構成ディレクティブを制限するサポートもありません。 YMMV。
免責事項:私はnginxのhtaccessの著者ですは有料ソフトウェアです。悪い意図はありません。
過去数年間、htaccessの動作をnginxに実装するプラグイン、特にRewriteRule
、Allow
、Deny
などを作成しました。 Webセキュリティに不可欠です。プラグインは問題なく自分の生産的な環境で使用されます。
私はnginxの効率と速度のポイント、そしてなぜhtaccessを実装しなかったのかを完全に共有しています。ただし、考えてみてください。 nginxとhtaccessを使用している場合、さらに悪化させることはできません。 nginxの優れたパフォーマンスを維持しつつ、1台のWebサーバーで簡単にレガシーアプライアンスを駆動できます。