Zuerst habe ich versucht, nach ähnlichen Fragen zu suchen, aber die Lösungen zu diesen Fragen waren bestimmte Codezeilen, die ich nicht anpassen konnte, um meine Bedürfnisse anzupassen.nginx schreibe alle in index.php außer whitelist
Ich habe eine Codeigniter-Installation, und ich versuche, von Apache zu nginx zu migrieren. In Apache war das .htaccess jedoch ziemlich einfach: Es würde eine Whitelist nehmen und alles andere in index.php
umschreiben.
RewriteEngine on
RewriteCond $1 !^(index\.php|css|images|core|uploads|js|robots\.txt|favicon\.ico)
RewriteRule ^(.*)$ /index.php/$1 [L]
jedoch in nginx, ich habe die, ob und try_files Richtlinien ausprobiert, sowie Herumspielen mit Standorten, ohne Erfolg. Ich bin noch neu, wie Nginx liest die Server-Konfiguration, und die Online-Tutorials waren etwas verwirrend zu folgen.
Zusätzlich, die index.php wird nicht in der Web-Root, sondern in einem Unterverzeichnis server
.
Aus diesem Grunde muß ich auch mit/Server geht nicht in das Verzeichnis Anfang sicher auch URI-Anforderungen machen, aber zu index.php
Das ist meine nginx virtuelle Host-Konfiguration so weit:
server {
listen 80;
server_name example.com;
root /home/example/public_html;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location/{
index index.htm index.html index.php;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/example.sock;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~* ^.*(/|\..*) {
try_files $uri $uri/ /server/index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Das hilft, Anfragen an index.php
umzuleiten, hat aber keine Whitelist. Ich würde es begrüßen, wenn jemand ein funktionierendes Beispiel mit einer kurzen Erklärung dessen, was jeder Teil tut, erzeugen könnte.
Danke, das hat den Trick! Ich werde auch in die Pathinfo-Sache schauen, es scheint interessant. – xiankai
http://wiki.nginx.org/IfIsEvil http://wiki.nginx.org/Pitfalls – VBart
Gemäß der IfIsEvild-Dokumentation, neu schreiben ... zuletzt; ist sicher, aber Vorschläge sind (natürlich ist das ein Wiki) willkommen. – complex857