伪静态规则(URL重写/Rewrite)是将动态URL(如index.php?id=123)映射为静态友好URL(如/article/123)的服务器配置。本工具支持Apache(.htaccess)、Nginx和IIS(web.config)三种主流Web服务器,内置10种CMS和常见场景的预设规则,提供可视化规则构建、逐行规则解读和跨服务器格式转换功能。
| 服务器 | 配置文件 | 重写模块 | 规则语法 |
|---|---|---|---|
| Apache | .htaccess 或 httpd.conf | mod_rewrite | RewriteRule ^pattern$ target [flags] |
| Nginx | nginx.conf 或 sites-available/* | ngx_http_rewrite | rewrite ^pattern$ target flag; |
| IIS | web.config | URL Rewrite Module | XML格式 <rule><match><action> |
WordPress、Laravel、ThinkPHP、Drupal、Joomla等CMS/框架都需要伪静态规则才能实现URL美化。例如WordPress需要将所有非文件请求转发到index.php。不同服务器的规则语法完全不同,用预设一键获取。
SSL证书部署后需要将所有HTTP请求301重定向到HTTPS版本。这是最常见的伪静态需求之一,但Apache和Nginx的写法差异很大。
搜索引擎将www.example.com和example.com视为两个不同的站点。需要通过301重定向统一到其中一个版本,避免内容重复和权重分散。
Vue、React、Angular等前端框架的History模式路由需要服务器配置:所有非静态文件的请求都返回index.html,由前端路由接管。
网站改版后旧URL需要301重定向到新URL,保留搜索引擎权重和用户书签。批量规则可通过构建器逐条添加。
Node.js、Go等后端服务通常运行在非80端口,需要通过Nginx反向代理将域名请求转发到后端服务。
搜索引擎将/page和/page/视为不同页面。通过伪静态规则统一添加或移除末尾斜杠,避免重复内容。
通过伪静态规则屏蔽.env、.git、wp-config.php等敏感文件的直接访问,返回403禁止访问。
在页面顶部的服务器切换栏中选择你的Web服务器类型:Apache(生成.htaccess规则)、Nginx(生成rewrite规则)或IIS(生成web.config XML规则)。所有功能标签页都会根据选择的服务器生成对应语法的规则。
在「📦 CMS预设」标签页中,点击任意CMS或场景卡片(WordPress、Laravel、强制HTTPS等),工具立即生成该CMS在当前服务器下的完整伪静态规则。预设已经过社区验证,可以直接使用。切换服务器后再次点击可获取不同服务器的版本。
在「🔧 规则构建」标签页中,点击"➕ 添加规则"逐条添加。每条规则需要设置:规则类型(内部重写/301重定向/302重定向/禁止访问)、匹配模式(正则表达式)、目标URL和可选的注释。点击"⚡ 生成规则"输出完整配置代码。
在「📖 规则解读」标签页中,粘贴任意Apache或Nginx伪静态规则代码。PHP引擎逐行解析每条指令,展示其类型(引擎开关/匹配条件/重写规则/注释等)和详细说明(匹配什么URL、重写到哪里、使用什么标志位)。帮助理解继承的或复制来的规则。
在「🔄 格式转换」标签页中,选择源格式和目标格式(如Apache→Nginx),粘贴规则后点击转换。工具自动将RewriteRule转为rewrite指令、将[R=301,L]转为permanent等。复杂条件(RewriteCond)会标注需要手动调整。
生成的规则代码带有语法高亮显示。点击"📋 复制"按钮复制代码,粘贴到对应的配置文件中(Apache→.htaccess、Nginx→server块内、IIS→web.config)。修改配置后记得重启/重载服务器。
检查:Apache是否启用了mod_rewrite模块(a2enmod rewrite)、AllowOverride是否设为All(而非None)、.htaccess文件是否放在网站根目录、文件编码是否为UTF-8无BOM。修改后不需要重启Apache。
Nginx配置修改后需要重载:nginx -t测试语法→nginx -s reload或systemctl reload nginx重载配置。不需要完全重启。
[L]是内部重写(URL栏不变,服务器内部转发),[R=301,L]是外部重定向(URL栏变化,浏览器重新请求新URL)。SEO场景中旧URL迁移必须用301重定向,CMS路由用内部重写。
try_files $uri $uri/ /index.php?$args;表示:先尝试访问原始URI对应的文件→再尝试同名目录→都不存在则转发到index.php。这是CMS伪静态的最佳实践,比if判断性能更好。
基本语法(PCRE)相同,但有细微差异:Apache的RewriteRule默认不匹配查询字符串,用$1引用捕获组;Nginx的rewrite用$1引用捕获组,location块的正则前缀用~(区分大小写)或~*(不区分)。
极大影响。301重定向传递约90%的链接权重;缺少HTTPS跳转会导致HTTP和HTTPS版本被视为重复内容;末尾斜杠不统一导致URL规范化问题。正确的伪静态配置是技术SEO的基础。
规则在当前页面PHP后端即时处理,不传输到第三方服务器,不存储任何数据。