伪静态规则生成器
填写动态页面和参数,一键生成三种服务器格式的伪静态规则,并可选生成「旧动态 URL 301 跳转到新静态 URL」的规则——权重不浪费,搜索引擎才能完成迁移。
使用说明
- 填动态页面和参数
「动态页面路径」填实际处理请求的文件,如 faq/list.asp;「参数名」填它接收的查询参数,如 Unid。两个参数就写 id,cid,顺序按查询串里的顺序。
- 写静态格式
静态地址想长什么样就怎么写,用 {参数名} 占位:faq/{Unid}.html、faq/cat/{id}-{cid}.html、article/{id}/ 都可以。
- 选服务器类型
Apache 输出 .htaccess、Nginx 输出 conf 片段、IIS 输出 web.config 规则段。三者核心规则等价,语法不同。
- 复制并放置
Apache 粘贴到根目录 .htaccess(需 AllowOverride All);Nginx 粘贴到站点 server {} 块内;IIS 粘贴到根目录 web.config 的 <rewrite><rules> 内。
注意事项
| 项目 | 说明 |
|---|---|
| 301 规则别漏 | 只做静态转发、不做 301,搜索引擎会同时收录两套 URL,权重被稀释。旧动态地址必须跳转到新静态地址 |
| IIS 需要 URL Rewrite 模块 | Windows Server 默认不安装,未安装时 web.config 里的规则整段报 500 错误,需在 IIS 管理器「添加角色和功能」中安装 |
| Apache 需要 AllowOverride | 虚拟主机若未开启 .htaccess 支持,规则会被静默忽略,页面表现成 404,需联系服务商开启 |
| 页内相对路径要同步改 | 伪静态把页面搬进虚拟子目录,页内 href="list.asp" 这类相对路径会解析失败,统一改成以 / 开头的根相对路径 |
| POST 会丢参数 | 伪静态转发不携带原始查询串时,分页表单若用 GET 提交可能丢 page 参数,可改用 POST 或在规则中透传 |
常见问题
生成的 .htaccess 应该放在哪里?
放在网站根目录,文件名必须是 .htaccess(前面有个点)。同时需要 Apache 配置 AllowOverride All 该目录才生效,部分虚拟主机默认开启。
IIS 的规则要放在什么位置?
放在网站根目录的 web.config 中,位于 <system.webServer><rewrite><rules> 节点内。需要服务器已安装 URL Rewrite 模块。
为什么伪静态之后页面里的相对路径都失效了?
因为伪静态把页面搬进了虚拟子目录。例如 /faq/372.html 在浏览器看来位于 /faq/ 目录下,页面里 href="list.asp" 这样的相对路径会被解析到不存在的路径。解决方法是把页内链接统一改成根相对路径(以 / 开头)或绝对地址。
三种格式的规则效果一样吗?
核心效果一致:都是把静态地址内部转发到动态页面处理。差异在语法和终止指令——Apache 用 [L]、Nginx 用 last、IIS 用 stopProcessing。301 跳转规则用于把旧的动态 URL 权重转移到新的静态 URL,三种格式都会生成。