Laravel 9根目录部署WordPress子目录(共享主机).htaccess配置问题
解决Laravel根目录下WordPress子目录403问题
1. 修正根目录.htaccess规则
当前规则的匹配逻辑存在疏漏,替换为更精确的规则,确保完全跳过对blog目录的请求转发:
<IfModule mod_rewrite.c> RewriteEngine On # 排除所有指向/blog/的请求 RewriteCond %{REQUEST_URI} !^/blog/ # 将其余请求转发到Laravel的public目录 RewriteRule ^(.*)$ public/$1 [L] </IfModule>
2. 配置WordPress子目录的.htaccess
在blog目录下创建或修改.htaccess文件,添加WordPress标准重写规则,保证子目录内的路由正常工作:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /blog/ RewriteRule ^index\.php$ - [L] # 跳过实际存在的文件和目录 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # 将子目录内所有请求转发到WordPress入口 RewriteRule . /blog/index.php [L] </IfModule>
3. 强制设置WordPress站点URL
如果无法进入wp-admin,直接修改blog/wp-config.php文件,添加以下配置(替换为你的实际域名):
define('WP_HOME', 'http://laravel.project/blog'); define('WP_SITEURL', 'http://laravel.project/blog');
这能避免WordPress生成错误的路由链接,彻底解决路径冲突问题。
4. 检查文件与目录权限
共享主机上权限错误是403的高发原因,按以下标准调整:
- 所有WordPress文件权限设为
644 - 所有WordPress目录权限设为
755 - 重点确认
wp-admin、wp-includes目录及内部文件的权限符合要求
完成以上操作后,清除浏览器缓存再重新访问laravel.project/blog/wp-admin即可正常进入后台。
内容的提问来源于stack exchange,提问作者Thọ Hà
相关产品推荐
相关产品推荐

