La Réécriture d'URL ne fonctionne pas dans Nginx
De réécriture d'URL ne fonctionne pas dans Nginx et le système d'exploitation Ubuntu 12.4 Lts
lors de l'ouverture http://mvc.loc il travaille
mais lorsque j'essaie d'ouvrir http://mvc.loc/login Pas de travail
404 Not Found
nginx/1.1.19
.htaccess
<IfModule !mod_rewrite.c>
ErrorDocument 500 "mod_rewrite must be enabled"
</IfModule>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?u=$1
des hôtes virtuels pour mvc.loc
server {
listen 80;
server_name mvc.loc;
access_log /var/log/nginx/mvc.loc.access.log;
error_log /var/log/nginx/mvc.loc.error.log;
root /usr/share/nginx/www/mvc;
index index.php;
# use fastcgi for all php files
# Are you sure you have this set up?
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;
}
# deny access to apache .htaccess files
location ~ /\.ht {
deny all;
}
}
OriginalL'auteur Parnit Das | 2013-09-26
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur Nanhe Kumar
Bien @NanheKumar de réponse obtenu la réécriture correct, mais il a ignoré les 2 premières règles dans le htaccess
Cela signifie vérifier si la demande ne correspond pas à un fichier et ne correspond pas à un répertoire, d'imiter ce comportement exact, vous pouvez utiliser
try_files
comme ceCe sera assurez-vous de répondre à des requêtes qui point à un actif ou d'un répertoire directement d'abord, puis si ni elle permettrait de transmettre la demande à
index.php
EDIT: sauf
index.php
est capable de servir des actifs, ce sera la cause de tous les actifs ( images, css, javascript, etc ) pour afficher des erreurs parce queindex.php
sera la réception d'arguments, il n'est pas attendu. Pensez à quelque chose comme cecihttp://example.com/index.php?u=/images/background.jpg
OriginalL'auteur Mohammad AbuShady