我试图让SEO URL在OpenCart中的多商店中运行。
我在管理员中有两个商店
http://www.shop.com (default)
http://m.shop.com
SEO网址适用于http://www.shop.com 但是他们为http://m.shop.com
返回了一个not_found.tpl(404页面)但这有效:
http://m.shop.com/index.php?route=product/product&path=68&product_id=52
SEO明智,它应该是
/index.php?route=product/product&path=68&product_id=52
http://www.shop.com/product-title
http://m.shop.com/product-title (404 returned)
我正在使用NGINX。这是配置:
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;
}
}
答案 0 :(得分:8)
我从一个人那里得到了这篇文章和细节,在我的公司SEO和营销团队正在使用这个工具..
来自XenForo论坛上的Setup SEO Full Friendly URLs on nginx:
实际上非常简单。
考虑到您已将XenForo上传到目录“community”,只需将其添加到您的nginx配置中:
location /community/ { index index.php index.html index.htm; try_files $uri $uri/ /community/index.php?$uri&$args; }
当您使用它时,您可能还想添加此项以阻止对“internal_data”和“library”文件夹的外部访问。
location ~ ^/community/(internal_data|library)/(.*)$ { internal; }
重新启动nginx并启用完整友好URL。
来自Opencart论坛上的Straight Forward Easy Instructions for Multi-Store Setup?:
简短版本是:
创建2个演示子域
subA.domain.com
subB.domain.com
并将两个子域“指向”Web主机上的同一文件夹 即public_html / shop
将opencart安装到第一个子域,然后通过管理员添加一个额外的存储。因此,Shop1 subA.domain.com和Shop2 subB.domain.com都运行相同的代码。
希望这是有道理的。
答案 1 :(得分:0)
OpenCart不处理多商店的SEO URL。唯一的方法是执行此操作 - 手动在m.shop.vhost的location {}
内添加网址
这将起作用(例子)
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;
这不起作用:
m.shop.com/checkout/cart - 它将返回404。
这将使其正常工作
m.shop.com.vhost
location / {
rewrite ^/checkout/cart?$ /index.php?route=checkout/cart last;
}
您只需手动添加所需的所有SEO网址即可。产品链接需要进行全局智能重写,因为您无法手动添加它们。如果我可能会建议一些东西 - 如果这是一个移动网站 - 那么你真的不需要SEO网址..用户几乎不会将它们用于手机,确保精明的用户会喜欢友好的SEO链接,但使用PHP字符串和参数和查询可能会更好在手机上使用 - 唯一的缺点是它需要高级重定向。
我的猜测是你希望这个能够正常工作,这样你就可以自动将标题从www更改为m和m更改为www以便手机更方便重定向类...如果是这种情况比我想听别人说的那样谁做到了这一点。我们在2台负载均衡的服务器上使用NGINX,并使用Magento,OpenCart和我们公司商店的另一个脚本。我们希望您是在OpenCart上进行大量交易的重要公司之一 - 我们有专门的团队处理其中的国际订单和语言查询..