2013-05-07 10 views
11

Sto cercando di far funzionare gli URL SEO attraverso i multi-store in OpenCart.Abilita gli URL SEO su più negozi e sottodomini su OpenCart utilizzando Nginx

ho due negozi nel amministrazione

http://www.shop.com (default) 
http://m.shop.com 

URL SEO lavorare per http://www.shop.com Ma essi restituiscono un not_found.tpl (pagina 404) per la http://m.shop.com

questo funziona comunque:

http://m.shop.com/index.php?route=product/product&path=68&product_id=52 

SEO saggio, dovrebbe essere

/index.php?route=product/product&path=68&product_id=52 

http://www.shop.com/product-title 
http://m.shop.com/product-title (404 returned) 

Sto utilizzando NGINX. Questa è la configurazione:

www.shop.com

server { 
    server_name www.shop.com; 
    listen 80; 
    root /var/www/www.shop.com/; 
    index index.php index.html; 
    location /image/data { 
     autoindex on; 
    } 
    location/{ 
     try_files $uri @opencart;  
    } 
    location @opencart { 
     rewrite ^/(.+)$ /index.php?_route_=$1 last; 
    } 
    location ~ \.php$ { 
     try_files $uri =404; 
     include /etc/nginx/fastcgi_params; 
     fastcgi_pass 127.0.0.1:9000; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    } 
} 

m.shop.com

server { 
    server_name m.shop.com; 
    listen 80; 
    root /var/www/www.shop.com/; 
    index index.php index.html; 
    location /image/data { 
     autoindex on; 
    } 
    location/{ 
     try_files $uri @opencart;  
    } 
    location @opencart { 
     rewrite ^/(.+)$ /index.php?_route_=$1 last; 
    } 
    location ~ \.php$ { 
     try_files $uri =404; 
     include /etc/nginx/fastcgi_params; 
     fastcgi_pass 127.0.0.1:9000; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    } 
} 
+1

Se non mi sbaglio, queste configurazioni esattamente lo stesso aspetto. Perché non usi solo una sezione 'server {...}' e aggiungi 'm.shop.com' alla direttiva' server_name'? Per quanto riguarda il tuo stesso errore, dal mio punto di vista ho solo un'ipotesi: la tua configurazione 'm.shop.com' è davvero attiva? A volte sono organizzati in una directory con i file di configurazione stessi e uno in cui si suppone di mettere un collegamento simbolico ad esso. Il link è lì, giusto? – Carsten

+0

Il collegamento è lì .. il sito funziona .. il sito m.shop.com funziona e si vede l'altro negozio OpenCart - gli URL di SEO non funzionano comunque. – TheBlackBenzKid

+0

Non ho esperienza con Open Cart, tuttavia, sono curioso di sapere se devi farlo attraverso nginx? Se no, non puoi semplicemente modificare il file .htaccess e usare una riscrittura mod. Ecco un esempio ho trovato con un unico negozio [Esempio] (http://www.templatemonster.com/help/files/OpenCart/opencart_seo_urls.htm). Forse sarà utile. – Dropzilla

risposta

0

OpenCart non gestisce gli URL SEO per multi-negozi. L'unico modo per fare questo - manualmente aggiungere gli URL all'interno del location {} del m.shop.vhost

Questo lavoro (esempio)

www.shop.com.vhost 

www.shop.com/index.php?route=checkout/cart 
www.shop.com/checkout/cart 

rewrite ^/checkout/cart?$ /index.php?route=checkout/cart last; 

E questo non funzionerà:

m.shop.com/checkout/cart - tornerà 404.

Ciò farlo funzionare

m.shop.com.vhost 

    location/{ 

    rewrite ^/checkout/cart?$ /index.php?route=checkout/cart last; 

} 

Devi solo aggiungere manualmente tutti gli URL SEO che desideri. Sarebbe necessaria una riscrittura intelligente globale per i collegamenti dei prodotti, poiché ovviamente non è possibile aggiungerli manualmente. Se posso suggerire qualcosa - se si tratta di un sito mobile - allora non hai davvero bisogno di URL SEO ... gli utenti difficilmente li usano per i telefoni, sicuro che l'utente esperto apprezzerebbe i link SEO ma usando la stringa PHP e parametri e query potrebbero essere migliori da utilizzare sul telefono - l'unico svantaggio è che richiede un reindirizzamento avanzato.

La mia ipotesi è che si desidera far funzionare tutto in modo da poter automaticamente basta cambiare il colpo di testa da www a m e m www per il telefono in modo più semplice classe di reindirizzamento .. se questo è il caso di quanto mi piacerebbe sentire da qualcuno altrimenti chi ha fatto questo. Usiamo NGINX su 2 server con carico bilanciato e usiamo Magento, OpenCart e un altro script per i nostri negozi aziendali. Ci piace che tu sia una delle aziende serie che eseguono transazioni ad alto volume su OpenCart - abbiamo un team dedicato che gestisce gli ordini internazionali e le richieste di linguaggio al suo interno.

+1

'OpenCart non gestisce gli URL SEO per i multi-store. Penso che tutti nella comunità OC non saranno d'accordo ?? – TheBlackBenzKid

8

Ho ricevuto questo articolo e dettagli da qualcuno, nella mia azienda SEO e team di marketing stanno usando questo strumento ..

Da Setup SEO Full Friendly URLs on nginx sui forum xenForo:

in realtà è davvero molto semplice.

Considerando aver caricato XenForo nella "comunità" directory, basta aggiungere questo alla vostra configurazione nginx:

location /community/ { 
      index index.php index.html index.htm; 
      try_files $uri $uri/ /community/index.php?$uri&$args; 
     } 

Mentre si è in esso che si potrebbe anche voler aggiungere questo per bloccare l'accesso esterno alle cartelle "internal_data" e "library".

location ~ ^/community/(internal_data|library)/(.*)$ { 
      internal; 
     } 

Riavviare nginx e abilitare gli URL completi.

Da Straight Forward Easy Instructions for Multi-Store Setup? sui forum OpenCart:

La versione breve è:
creare 2 sub domini demo
subA.domain.com
subB.domain.com
e "punto "Entrambi i sottodomini nella stessa cartella sul tuo host web.
i.e. public_html/shop
Installare opencart sul primo dominio secondario, quindi passare attraverso l'amministratore e aggiungere un altro archivio.

Quindi avrete Shop1 subA.domain.com e Shop2 subB.domain.com entrambi con lo stesso codice.

Spero che abbia senso.

+0

@TheBlackBenzKid Questo funziona ... è un'idea di base come implementare questo !! –

+0

IO STO USANDO OPENCART NON XenForo -100 – TheBlackBenzKid