Heim >Backend-Entwicklung >PHP-Tutorial >thinkphp nginx php-fpm URL-Umschreibung verursacht 404-Fehler

thinkphp nginx php-fpm URL-Umschreibung verursacht 404-Fehler

WBOY
WBOYOriginal
2016-07-29 09:12:361251Durchsuche

thinkphp nginx php-fpm URL Rewrite verursacht 404-Fehler

Zuvor wurde das thinkphp-System auf Apache bereitgestellt, da Nginx in Bezug auf die Parallelitätsleistung viel leistungsfähiger ist als Apache Wird auf Centos verwendet. Habe das thinkphp-System erneut bereitgestellt und Folgendes festgestellt:

1

/index.php/home/user/verify

1

/index.php/home/user/verify

1

/index.php?s=/home/user/verify

Solche URL-Nginx meldet einen 404-Fehler, ändert ihn jedoch in

1

1

/index.php/home/user/verify

/index. php?s=/home/user/verify

kann später zugegriffen werden, was bedeutet, dass die frühere URL von Nginx nicht unterstützt wird. Warum wird sie also nicht unterstützt? Um dieses Problem zu lösen, müssen Sie zunächst die verschiedenen URL-Modi von thinkPHP verstehen.

thinkPHP URL-Muster

1. Pfadinfo-Muster

1

/?s=/home/user/verify

1

/index.php/home/user/verify

Dieses URL-Format erfordert, dass der Server Pathinfo unterstützt

2 . Umschreibemodus

Pseudostatischer Modus von index.php entfernen

3. Kompatibilitätsmodus

1

'URL_MODEL'=>3

1

/?s=/home/user/verify

1

234567891011

#以index.php开头的uri

location~^/index.php(.*)

        {

                #如果文件或者路径不存在

                if(!-e$request_filename)

                {

                        #将pathinfo模式的uri重写成普通模式

                        rewrite  ^/index.php(.*)$  /index.php?s=$1  last;

                        break;

                }

        }

Fügen Sie s= zum Normalen hinzu mode /parameter/or m=model&a=actionthinkPHP URL-ModuskonfigurationÄndern Sie den Wert von URL_MODEL in der Datei/Application/Common/conf.php
1 ' URL_MODEL' =>3
Konfiguration des Nginx-Pathinfo-ModusNginx unterstützt den Pathinfo-Modus standardmäßig nicht und wird neu geschrieben Muss manuell hinzugefügt werden. Regeln zur Unterstützung 1. Öffnen Sie die Site-Konfigurationsdatei im Verzeichnis /nginx/conf/vhost. 2. Fügen Sie die folgenden Standortregeln zum Serverknoten hinzu:
1 2 34567891011 #urilocation ~^/index.php(.* ) span> span>                                                                                       if(!-e$request_filename ) span> . ) $ / index.php?s= $1 last; span> span>                                                            🎜>

3. Nginx-Konfigurationsinformationen neu laden

1

service nginx reload

1

service nginx reload

Fertig ! Das Obige stellt den 404-Fehler vor, der durch das Umschreiben der PHP-FPM-URL durch thinkphp nginx verursacht wird, einschließlich des Anwendungsinhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn