2013-10-02 7 views
5

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

+0

Penso che sia necessario aggiungere un 'root' all'interno di' @ handler' = '/ var/www/domain.de/www.domain.de/htdocs/shop' –

+0

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

+0

hai bisogno sia di root che di riscrittura, hai usato entrambi? –

risposta

7

* Edit *

Ok ho capito risolto. Ecco il mio attuale file di configurazione.

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; 
    if ($uri ~ "^/index.php/admin.*$"){ 
     rewrite ^/index.php/admin(.*) /admin$1 redirect; 
    } 
} 

location ~ ^/shop/(app|includes|lib|media/downloadable|pkginfo|report/config.xml|var)/ { internal; } 
location /shop/var/export/ { internal; } 
location @handler { rewrite//shop/index.php; } 

location ~ ^/(gpack|img|tmp/map)/ { 
    allow  all; 
} 

location ~ .*\.php?$ { 
    fastcgi_pass    unix:/var/run/domain.de.sock; 
    fastcgi_index   index.php; 
include     conf/fastcgi.conf; 
} 
} 

spero che aiuti anche qualcun altro. Grazie per il vostro supporto.

+0

Grazie, lo hai inchiodato! dovrebbe essere aggiunto a questa pagina https://magento2.atlassian.net/wiki/display/m1wiki/Configuring+nginx+for+Magento+1.x – Haijerome