有人可以解释一下如何让 nginx 在其自己的子文件夹下识别 magento 中的商店视图吗?
我有一家商店..我的 nginx 配置文件中有以下代码。
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param MAGE_RUN_CODE edu_default;
fastcgi_param MAGE_RUN_TYPE store;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 256k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
fastcgi_param SCRIPT_FILENAME /home/domain here/public_html$fastcgi_script_name;
}
我的所有 magento 文件都位于根文件夹中:/home/domain here/public_html
现在我有一个可以通过子文件夹 /substore/ 访问的商店视图
但我希望它从根文件夹 magento index.php 文件运行。但所有链接的 URL 中仍然有子文件夹。
实际的 magento 商店视图配置设置正确。因此,基本 URL 和基本链接 URL 是带有子文件夹的 URL。
所有静态内容仍然从根域加载,无需子文件夹。
现在我一直在尝试为它创建一个新的位置 {} 块,但似乎无法让它工作
我知道 syslink 方法但想尝试不那样做。
实际上我只需要找出如何在传递 MAGE_RUN_CODE 的同时让所有 /subfolder/index.php url 重写为 magento 中的根 index.php 文件
我刚刚尝试了上述位置块。该网址现在似乎可以正常工作,但我在 magento 中收到 404 页面。因此一定没有正确传递“显示哪个页面”值
location ~ /subfolder/.+\.php$ {
root /home/domainhere/public_html;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param MAGE_RUN_CODE storeviewcodehere;
fastcgi_param MAGE_RUN_TYPE store;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 256k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
fastcgi_param SCRIPT_FILENAME /home/domainhere/public_html$fastcgi_script_name;
更新.1 好的所以我发现我需要使用该部分...
location @handler {
rewrite / /subfolder/index.php;
}
但这会导致顶级商店无法正常运作,因为所有内容都变成了子商店视图。
所以我需要重写规则
rewrite / /index.php;
和
rewrite / /subfolder/index.php;
有人知道正确的方法吗?
答案1
我已经多次看到过这种情况,为什么要将多个商店保存在单独的子文件夹中,这不是子域名的工作吗?
正确的方法是保持您的商店原样,并使用下拉菜单选择您的商店视图,然后更改基本网址......
然后在 nginx 中你可能需要使用map
配置,
map $request_uri $mage_code {
default edu_default;
~^/my_other_shop/ edu_special;
}
map $request_uri $mage_type {
default edu_default;
~^/my_other_shop/ store;
}
事实上我以前从来没有尝试过:)