ホームページ > バックエンド開発 > PHPチュートリアル > nginxディレクトリ権限制御

nginxディレクトリ権限制御

WBOY
リリース: 2016-06-13 12:56:27
オリジナル
852 人が閲覧しました

nginx ディレクトリ権限制御ヘルプ

<br />
server {<br />
	listen       80;<br />
	server_name  admin.my.com;<br />
<br />
	location / {<br />
		root   D:/www/webroot;<br />
		index  index.php;<br />
	}<br />
<br />
        error_page	404 = http://admin.my.com/error.html;<br />
<br />
	location ~ \.php$ {<br />
		root		D:/www/webroot;<br />
		fastcgi_pass	127.0.0.1:9000;<br />
		fastcgi_index	index.php;<br />
		fastcgi_param	SCRIPT_FILENAME  D:/www/webroot$fastcgi_script_name;<br />
		include		fastcgi_params;<br />
	}<br />
}<br />
ログイン後にコピー


fastcgi.conf は上記のように設定されています

私のシステムの URL 構造 (疑似静的ではなく、エントリ ファイル内で変換されただけです):
など: http://admin.my.com/index.php/Index/image
ログイン後にコピー
_code
http://admin.my.com/index.php/Admin/edit_config
http://admin.my.com/index.php/News/add
……
Index.php はエントリ ファイル、単一エントリ

しかし、問題は http://admin.my.com/index.php/Index/image_code
にアクセスしたときに発生します。 実際、ファイル パスは D:/www/webroot/index.php/Index/image_code/index.php
を指しています。 上記の場所は次のように構成されているため、おそらく URL のサフィックスは php や html、またはその他の「物理的に存在する」ファイルではないため、index.php が自動的に追加されますよね。 ? ? ? ? ? ? ? ? ? ? ?

私の目的は、index.php によって形成される URL の後にスラッシュがいくつ続いても、次のパラメータをディレクトリとして認識して自動的に Index.php を追加するのではなく、エントリ ファイルは以前の Index.php のみにすることです。

この URL 構造が非常に不規則であることはわかっていますが、現時点では変更に非常に手間と時間がかかるため、nginx の設定を通じて解決する方法があるかどうか疑問に思っています。お願いです、神様、お願いします、ありがとう。

Apacheの方が使いやすい気がするので、あっという間に終わりました:
<br />
<VirtualHost *:80><br />
    ServerAdmin	admin@yahoo.com.cn<br />
    DocumentRoot /<br />
    ServerName admin.my.com<br />
    Alias /  "D:/www/webroot/"<br />
    <Directory "D:/www/webroot/"><br />
	Options	 FollowSymLinks	MultiViews ExecCGI<br />
   <br />
	Order allow,deny<br />
       Allow from all <br />
    </Directory><br />
   ErrorLog logs/admin-error.log<br />
   #CustomLog logs/admin-access.log common<br />
</VirtualHost><br />
ログイン後にコピー

nginx アパッチ サーバー
-----解決策---------
location ~ .php$
php を削除した後、正規表現内の $ は終わりを意味します。これを削除すると、nginx は .php だけでなく、すべての .php* ファイルを処理のために fpm に渡すように指示されます。
次に、実行ファイル名をindex.php
に変更します。 fastcgi_param SCRIPT_FILENAME D:/www/webroot/index.php;
残りはあなたのアプリケーション次第です。

これは比較的単純な構成です。より完全な方法を知りたい場合は、この点に関する説明が多すぎます。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート