Laravel集成WordPress后去除URL末尾斜杠问题求助
解决Laravel集成WordPress后/blog/末尾斜杠问题
1. 修改Laravel根目录的.htaccess文件
原规则里的!-d条件会跳过实际存在的目录(比如blog文件夹),所以需要在现有规则前添加针对/blog/的单独重定向:
修改后的完整配置:
Options -MultiViews -Indexes RewriteEngine On # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # 单独处理/blog/的末尾斜杠重定向 RewriteRule ^blog/$ /blog [L,R=301] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # Send Requests To Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L]
2. 调整WordPress自身设置
WordPress默认会自动给URL添加末尾斜杠,需要同步修改:
- 后台设置方式:
- 进入WordPress后台 → 设置 → 固定链接
- 将自定义结构设置为不带末尾斜杠的格式,比如
/%postname%(而非/%postname%/) - 保存设置,让WP自动更新
public/blog/.htaccess文件
- 代码强制方式:在WordPress的
wp-config.php中添加以下代码:define('WP_STRICT_REDIRECT', true); add_filter('user_trailingslashit', '__return_false', 9999);
3. 清除缓存
完成修改后,需要:
- 清除浏览器缓存,避免旧重定向规则残留
- 运行Laravel缓存清理命令:
php artisan cache:clear php artisan config:clear
内容的提问来源于stack exchange,提问作者Stephan G Varghese
相关产品推荐
相关产品推荐

