如何在.htaccess中使用RewriteRule实现URL美化 规则不生效求助
问题原因
- 正则表达式写法错误:规则中
[.]+的写法仅会匹配字面量.字符,[]字符集中的.会失去通配符含义,你需要匹配除路径分隔符/外的任意字符,应修改为[^/]+。 - WordPress默认回退规则缺失判断条件:原有配置中默认的重写规则前没有文件/目录存在性校验,会导致静态资源请求也被强制重写到index.php。
- 基础配置校验:请先确认Apache已开启
mod_rewrite模块,且站点虚拟主机配置中AllowOverride参数设置为All,否则.htaccess文件不会被加载。
修正后完整配置
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] # 自定义分类+位置伪静态规则 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/([^/]+)$ index.php?search_categories%5B%5D=$1&search_location=$2 [QSA,L] # WordPress默认回退规则 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
验证注意事项
修改配置后请用浏览器无痕模式测试,避免永久重定向缓存影响结果验证。
内容的提问来源于stack exchange,提问作者brian parsa
相关产品推荐
相关产品推荐

