网站迁移后如何用.htaccess将带.php后缀URL 301重定向到无后缀地址
Apache .htaccess 实现.php后缀301重定向到无后缀URL
前置要求
- 服务器为Apache环境
- 已开启
mod_rewrite扩展 - 站点配置中
AllowOverride参数设置为All,允许.htaccess文件生效
完整配置
将以下规则添加到你站点根目录的.htaccess文件开头即可:
RewriteEngine On # 重定向所有带.php后缀的合法请求到无后缀路径 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} ^(.+)\.php$ RewriteCond %1 -f RewriteRule ^(.*)\.php$ /$1 [R=301,L]
规则说明
RewriteEngine On:开启Apache重写引擎,是所有重写规则生效的前提RewriteCond %{REQUEST_FILENAME} !-d:排除真实存在的目录请求,避免目录被误重定向RewriteCond %{REQUEST_FILENAME} ^(.+)\.php$:匹配所有带.php后缀的请求路径RewriteCond %1 -f:校验对应的.php文件真实存在,避免不存在的路径也触发重定向返回异常RewriteRule ^(.*)\.php$ /$1 [R=301,L]:捕获.php前面的路径部分,返回301永久重定向到无后缀的对应路径,L标记表示当前规则匹配后不再执行后续重写规则
测试注意
首次验证规则时可以把R=301改成R=302使用临时重定向测试,确认规则符合预期后再改回301,避免301永久重定向被浏览器缓存导致后续调整无法立即生效。
内容的提问来源于stack exchange,提问作者connorcode
相关产品推荐
相关产品推荐

