/ / apache / nginx: conversion de réécriture .htaccess mayhem - apache, réécriture de mod, réécriture d’URL, nginx, réécriture

apache / nginx: conversion de réécriture .htaccess mayhem - apache, réécriture de mod, réécriture d'URL, nginx, réécriture

J'essaie de réécrire une règle .htaccess d'Apache pour qu'elle soit utilisée sur un serveur Nginx.

RewriteCond $1 !^(index.php|assets)
RewriteRule ^(.*)$ /index.php/$1 [L]

Voici ce que j'ai qui fonctionne en quelque sorte, maisune meilleure direction serait très appréciée. Je peux accéder à l'index et le charger correctement et parcourir le dossier d'actifs sans problème, mais les liens plus profonds ne fonctionnent pas (le programme PHP extrait les vars de l'URL pour créer des requêtes de base de données). Je sais que je suis proche .. merci pour toutes les réponses.

location / {
index index.php;
}
location /$ {
rewrite ^/(.*)$ /index.php/$1 last;
}
location /index.php {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;
}

Réponses:

0 pour la réponse № 1

Je pense que ces règles enverront tout ce quiisn "t sous / assets à /index.php. Je pense que cela fera ce que vous voulez. De plus, les directives racine et index sont déplacées vers le serveur, où elles doivent être définies par défaut pour tous les emplacements.

# set server defaults directly in server context
root /usr/share/nginx/html;
index index.php;

# location / is a fallback for any request that doesn"t match
# a more specific location
location / {
rewrite ^ /index.php$uri last;
}

# Serve content under /assets from disk
location /assets {
}

# Extract path info and send /index.php for processing
location /index.php {
fastcgi_split_path_info ^(/index.php)(.*)
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_pass 127.0.0.1:9000;
}