1 votes

Réécrire toutes les requêtes vers index.php sauf certaines requêtes de sous-répertoire

Je veux réécrire toutes les demandes à /index.php sauf /css/* y /js/* .

Voici ma configuration originale

location / {
    try_files $uri /index.php$is_args$args;
}

qui fonctionne, mais me permet d'accéder directement à tous les fichiers. J'ai essayé ceci

location / {
    rewrite ^(.+)$ /index.php break;
}

mais je n'ai pas pu passer outre des erreurs bizarres comme l'interruption de l'analyse PHP. Après avoir obtenu /index.php la réécriture fonctionne, je suppose que je devrais faire quelque chose comme location /css/ { .. } etc, mais je ne suis pas vraiment sûr.

Une idée pour résoudre ce problème ? Merci.

4voto

yzfr1 Points 141

J'ai trouvé une réponse juste après avoir posté cette question.

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 /css/ {}
location / {
    rewrite ^ /index.php last;
}

L'astuce semble être de mettre le php location au-dessus des autres.

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