如何在Shopify中配置指向Laravel项目的正确App Url路径
Shopify Laravel应用路径配置错误解决方案
你遇到的问题核心是Laravel项目入口路径与Shopify应用配置的路径不匹配,同时Laravel默认要求将public目录作为站点根目录才能正常运行,按照以下两种方案配置即可解决:
方案一(官方推荐):调整Web服务器站点根目录
该方案安全性和兼容性最好,可避免暴露Laravel核心代码文件,也不会出现路径前缀相关的路由、资源加载错误
- 找到你所用Web服务器的虚拟主机配置:
- Nginx:修改站点配置中的
root参数,将原有根目录路径修改为Laravel项目的public目录路径,示例:server { listen 80; server_name domainexp.com; root /你的服务器实际存储路径/ShopifyApp/laravel1/public; # 仅修改该行即可 index index.php index.html; # 其余原有配置保持不变 } - Apache:修改虚拟主机配置中的
DocumentRoot参数,指向上述public目录,保存后重启Apache服务。
- Nginx:修改站点配置中的
- 配置修改完成后重启Web服务器,此时直接访问
https://domainexp.com即可正常加载Laravel项目 - 回到Shopify应用配置页修改参数:
- App Url填写:
https://domainexp.com - 允许重定向URL填写:
https://domainexp.com/authenticate
- App Url填写:
- 执行Laravel缓存清理命令生效:
php artisan config:clear && php artisan route:clear
方案二:保留现有目录结构适配
如果暂时无法修改站点根目录配置,可通过重写规则和Laravel路径配置适配:
- 在域名根目录下新增配置规则:
- Apache环境:新增
.htaccess文件写入以下内容
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^(.*)$ ShopifyApp/laravel1/public/$1 [L] </IfModule>- Nginx环境:在站点配置中添加以下规则
location / { try_files $uri $uri/ /ShopifyApp/laravel1/public/index.php?$query_string; } - Apache环境:新增
- 修改Laravel项目
.env文件的APP_URL参数:APP_URL=https://domainexp.com/ShopifyApp/laravel1/public - 打开
app/Providers/AppServiceProvider.php,在boot方法中添加以下代码强制匹配路径前缀和HTTPS协议:public function boot() { $this->app['url']->forceRootUrl(config('app.url')); // 强制HTTPS避免Shopify混合内容报错 $this->app['url']->forceScheme('https'); } - 执行Laravel缓存清理命令生效:
php artisan config:clear && php artisan route:clear - Shopify应用配置保持原有填写的参数即可:
- App Url:
https://domainexp.com/ShopifyApp/laravel1/public - 允许重定向URL:
https://domainexp.com/ShopifyApp/laravel1/public/authenticate
- App Url:
相关截图


内容的提问来源于stack exchange,提问作者nhungo duc
相关产品推荐
相关产品推荐

