如何将WordPress与Laravel分目录部署并实现指定路径访问?
实现Laravel与WordPress分目录部署的URL路由方案
一、用.htaccess实现(Apache服务器)
先明确服务器目录结构,建议将两个项目放在网站根目录的同级子目录:
网站根目录/ ├── laravel/ # Laravel项目根目录 │ └── public/ # Laravel的Web访问入口 └── wordpress/ # WordPress项目根目录
在网站根目录创建(或修改).htaccess文件,写入以下规则:
RewriteEngine On # 匹配/blog开头的请求,转发到WordPress目录 RewriteRule ^blog/(.*)$ wordpress/$1 [L] # 匹配主域名根路径请求,转发到WordPress首页 RewriteRule ^$ wordpress/index.php [L] # 处理/login单路径和子路径,转发到Laravel的public目录 RewriteRule ^login/(.*)$ laravel/public/login/$1 [L] RewriteRule ^login$ laravel/public/login [L] # 让Laravel处理/login路径下的内部路由 RewriteCond %{REQUEST_URI} ^/login/ RewriteRule ^ laravel/public/index.php [L]
注意事项:
- WordPress后台设置:**站点地址(URL)**填
https://siteexample.com,**WordPress地址(URL)**填https://siteexample.com/wordpress(若直接访问主域名正常,也可统一设为站点地址) - Laravel的
config/app.php中APP_URL设为https://siteexample.com,保持登录路由为默认的/login即可 - 确保Apache已开启
mod_rewrite模块
二、Nginx服务器配置方案
若使用Nginx,直接修改站点配置文件即可,性能比.htaccess更优:
server { listen 80; server_name siteexample.com; root /var/www/html; # 网站根目录 # 主域名和/blog路径指向WordPress location / { root /var/www/html/wordpress; index index.php index.html; try_files $uri $uri/ /index.php?$args; } location /blog { alias /var/www/html/wordpress; index index.php index.html; try_files $uri $uri/ /blog/index.php?$args; } # /login路径指向Laravel location /login { alias /var/www/html/laravel/public; index index.php index.html; try_files $uri $uri/ /login/index.php?$args; } # PHP处理规则,根据实际PHP版本调整 location ~ \.php$ { fastcgi_pass unix:/run/php/php8.2-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
注意事项:
- WordPress的站点URL设置与Apache方案一致
- Laravel的
APP_URL同样设为https://siteexample.com - 修改配置后重启Nginx生效:
sudo systemctl restart nginx
三、额外提示
- 两个项目完全独立,各自维护Git仓库即可,互不干扰
- 若需添加更多Laravel路径(如
/dashboard),可在.htaccess或Nginx配置中新增对应规则,将路径转发到Laravel的public目录
内容的提问来源于stack exchange,提问作者Ghazni Ali
相关产品推荐
相关产品推荐

