Zuerst habe ich die URL-Rewrite-Methode von Nginx verwendet.
Enable_query_strings aktivieren
Die Methode zum Aktivieren ist sehr einfach: in application/config/config.php festlegen:
$config['enable_query_strings'] = FALSE
Wenn Sie im PATH_INFO-Modus, der in CI-Entwicklungsprojekten verwendet wird, die URL in der Nginx-Konfiguration neu schreiben möchten, müssen Sie die Zeichenfolgenabfrage in der CI-Konfigurationsdatei aktivieren und die Änderungen im URL-Formular vergleichen:
URL: www.xxx.com/user/profile String-Abfragemodus: www.xxx.com/index.php?c=user&m=profile
Stellen Sie das Frontend ein und Back-End-URLs nach bestimmten Regeln. Nach dem Umschreiben sind alle Tests in Ordnung. Es gibt jedoch ein Problem beim Paging, da sich die nach der Aktivierung der Zeichenfolgenabfrage generierte Paging-URL-Adresse geändert hat:
Nicht aktiviert: /user/list/10 Nach der Aktivierung der Zeichenfolgenabfrage: /user/list&per_page= 10
Der Grund, warum die folgende falsche URL angezeigt wird, ist, dass sich beim Generieren der Paginierung das base_url-Format nicht geändert hat, sodass es sich von /user/list in das entsprechende /index.php?c=user&m= ändert Liste wird die folgende Situation angezeigt:
Zweite Seite: www.xxx.com/index.php?c=user&m=list&per_page=10 Dritte Seite: www.xxx.com/index.php? user&m=list&per_page=20 Die vierte Seite: www.xxx.com/index.php?c=user&m=list&per_page=30
Und die Seitengröße, die ich eingestellt habe, ist immer 10, in diesem Fall per_page. Das sollte es sein immer 10 sein. Ich habe mir den Code der Pagination-Klasse angesehen und festgestellt, dass per_page nur der Standardwert von query_string_segment ist. Ich habe fälschlicherweise gedacht, dass es sich um den Parameter per_page handelt.
Paging ist mit Rewrite kompatibel
Um es zusammenzufassen: Wenn Sie in Bezug auf Paging mit Rewrite kompatibel sein möchten, ändern Sie den Parameter base_url beim Generieren von Paging:
Methode 1 : /index .php?c=user&m=list, das Ergebnis ist: /index.php?c=user&m=list&per_page=10 Methode 2: /user/list?, das Ergebnis ist: /user/list?&per_page=10
Das Paging-SQL ist:
$this->db->limit($pagesize, $this->input->get('per_page'));
Um die URL-Konsistenz aufrechtzuerhalten, verwenden Sie die zweite Methode. Sie können auch später alle nutzlosen Parameter hinzufügen, um das Ergebnis zu /user/list?x=xxx&per_page=10 zu machen.
Diskutieren
über Paginierung. Natürlich können Sie auch nicht das mit CI gelieferte Paging verwenden oder Pagination.php ändern.
Wenn es als Parameter der Methode übergeben wird, eine normale URL wie: /user/arg1/arg2/arg3, dann kann es beim Umschreiben nicht übergeben werden (zumindest habe ich noch keine Lösung gefunden) ), wenn Sie es lösen möchten, müssen Sie die Parameter in den GET-Modus ändern, was eine Änderung des Programms erfordert und daher nicht empfohlen wird.
Darüber hinaus erfordert die Verwendung von Rewrite unterschiedliche Formen von URLs. Wenn das Projekt sehr komplex ist, wird es zu einer Belastung, daher suchen wir nach einer anderen Methode: Lassen Sie Nginx PATH_INFO an fastcgi übergeben, siehe nächster Artikel.
Das Obige ist der Inhalt des Nginx-KonfigurationscodeIgniter-Projekts (1). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.