如何通过.htaccess修改网站URL,实现动态参数链接转静态路径
实现URL重写的.htaccess配置方案
前置要求
- 确保Apache服务器已启用
mod_rewrite扩展 - 站点虚拟主机配置中
AllowOverride参数设置为All,允许.htaccess文件生效
将以下配置写入站点/blog目录下的.htaccess文件即可:
RewriteEngine On # 规则1:旧带参链接301永久重定向到美观URL,地址栏自动更新为新格式 RewriteCond %{QUERY_STRING} ^meta=([A-Za-z0-9_-]+)$ RewriteRule ^post/?$ /blog/%1? [L,R=301] # 规则2:内部重写,将新格式URL映射回后端原有处理地址,地址栏无变化 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([A-Za-z0-9_-]+)/?$ /blog/post/?meta=$1 [L]
规则说明
规则1末尾的
?作用是重定向后丢弃原有查询参数,避免新URL后拼接多余的?meta=xxx后缀;R=301为永久重定向标识,利于SEO权重转移。
规则2前两个条件用于排除真实存在的静态文件、目录请求,避免重写规则影响静态资源访问;L标识匹配到当前规则后不再执行后续重写逻辑。
配置完成后清空浏览器缓存再测试即可,避免本地缓存的旧301规则影响验证结果。
内容的提问来源于stack exchange,提问作者Taher Maknine
相关产品推荐
相关产品推荐

