1 votes

Ngin, url:/search => exécuter php /search.php, et url:/my => php my.php.

Veuillez m'aider à configurer Nginx :

1) J'ai un certain nombre de scripts php, et je veux les exécuter avec leur URL sans ".php". Par exemple

  • url /search -> exécuter script "/search.php"
  • url /bookmark -> exécuter script "/bookmarks.php"
  • url / -> exécuter script "/index.php"

2) 404 /asdfasdfasdf - toute url qui ne correspond à aucun emplacement spécifié et qui ne mène pas à un fichier statique (image, css) doit exécuter /not-found.php en conservant /asdfasdfasdf dans l'URL.

Section du serveur actuel root /var/www/site/public ; index index.php ;

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include        fastcgi_params;         
}

location ~ \.(ico|css|js|jpe?g|png)$ {
    expires 7d;
    add_header Pragma public;
    add_header Cache-Control "public,  must-revalidate, proxy-revalidate";
}

0voto

Tim Points 28848

J'ai fait cela en utilisant des réécritures

location /abcd {
  rewrite ^/abcd\/([0-9a-zA-Z_\-\s\+]+)\/([0-9a-zA-Z_\-\s\+\(\)\.]+)$ /efgh.php?action=whatever;
}
location /xyz {
  rewrite ^/yxz\/([0-9a-zA-Z_\-\s\+]+)$ /rst.php?action=whatever;
}

Il existe probablement un moyen plus générique, mais si vous avez un nombre limité d'URL, cela peut fonctionner. Cela peut vous mettre sur la bonne voie. Je regarderais probablement les expressions régulières, les groupes de capture et les expressions.

0voto

HugoFS Points 313

Il existe quelques modèles communs pour implémenter le PHP sans extension. L'un de ces modèles ressemble à ceci :

index index.php;

location / {
    try_files $uri $uri/ @php;
}
location @php {
    rewrite ^ $uri.php last;
}
location ~ \.php$ {
    try_files $uri =404;
    ...
}

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X