Ho dato un'occhiata agli argomenti correlati qui, ma non ha fatto il trucco per me. Quindi ecco quello che sto facendo. Attualmente stiamo passando da un server all'altro. Il vecchio era in esecuzione Apache, il nuovo è in esecuzione Nginx. Così, per uno dei nostri siti web abbiamo un sito Wordpress CMS su http://mydomain.com ed un'installazione di Magento sul http://mydomain.com/shopNginx + Magento nella sottocartella
CMS è in esecuzione senza problemi. Se si tratta del negozio, sono bloccato. Il Magento index.php è mostrato - tutto bene finora. Ma non appena provo a navigare da qualche altra parte nel negozio, mi imbatto in 404 errori. Quindi devono esserci degli errori con le riscritte. Ho provato molte cose che nessuno funziona.
Quindi, ecco che arriva la mia configurazione vhost corrente:
server {
listen 80;
listen 443;
server_name www.domain.de domain.de *.domain.de;
root /var/www/domain.de/www.domain.de/htdocs;
index index.php;
access_log /var/log/nginx/domain_access.log;
error_log /var/log/nginx/domain_error.log;
error_page 403 /403.php;
error_page 404 /404.php;
error_page 500 /500.php;
error_page 501 /500.php;
error_page 502 /500.php;
error_page 503 /500.php;
location ~* \.(js|css|jpg|jpeg|gif|png|ico|swf)$ {
if (-f $request_filename) {
expires 30d;
add_header Cache-Control "public";
break;
}
}
#Temp-Dateien blocken
location ~* \.(bak|cache|csv|git|old|php~|spool|svn|swp|temp|tmp)$ {
deny all;
}
#Sonstige Dateien blocken
location ~* \.(1st|386|app|ani|asm|bat|bin|cfg|cmd|cnf|com|cpl|dbs|dll|drv|exe|inc|sh|lnk|reg|scr|sys|vxd)$ {
deny all;
}
location/{
try_files $uri $uri/ /index.php?$args;
}
location /shop {
index index.html index.php;
try_files $uri $uri/ @handler;
expires 30d;
}
location ~ ^/(app|includes|lib|media/downloadable|pkginfo|report/config.xml|var)/ { internal; }
location /var/export/ { internal; }
location /. { return 404; }
location @handler { rewrite /shop/ /index.php; }
location ~* .php/ { rewrite ^(.*.php)/ www last; }
location ~ ^/(gpack|img|tmp/map)/ {
allow all;
}
location ~ .*\.php?$ {
fastcgi_pass unix:/var/run/php/domain.de.sock;
fastcgi_index index.php;
include conf/fastcgi.conf;
}
}
eventuali suggerimenti sono i benvenuti. Immagino che debba essere un mio piccolo errore.
Grazie in anticipo. Saluti, Steven
Penso che sia necessario aggiungere un 'root' all'interno di' @ handler' = '/ var/www/domain.de/www.domain.de/htdocs/shop' –
Ho provato ad aggiungerlo in questo modo: ' posizione @handler { root /var/www/domain.de/www.domain.de/htdocs/shop; } anziché 'location @handler {riscrivi/acquista//index.php; } ma non ha fatto il trucco. Qualche suggerimento? – Steven
hai bisogno sia di root che di riscrittura, hai usato entrambi? –