如何用.htaccess将无下划线的请求重定向至指定页面
实现基于下划线的请求重定向(.htaccess)
没问题,你可以通过Apache的mod_rewrite模块在.htaccess里轻松实现这个需求。核心思路是:匹配不包含下划线的请求路径,将它们重定向到指定页面;而包含下划线的请求则跳过规则,正常访问。
直接用下面的代码即可:
# 启用mod_rewrite引擎 RewriteEngine On # 匹配所有不包含下划线的请求(排除指定目标页面,避免循环重定向) RewriteCond %{REQUEST_URI} !^/your-target-page\.php$ RewriteCond %{REQUEST_URI} !_ RewriteRule ^(.*)$ /your-target-page.php [R=302,L]
代码解释:
RewriteEngine On:开启重写引擎,这是所有mod_rewrite规则的前提。- 第一个
RewriteCond:排除你要重定向到的目标页面,防止出现无限循环重定向的问题(比如目标页面本身也不含下划线的话)。把your-target-page.php替换成你实际的指定页面路径。 - 第二个
RewriteCond:匹配不包含下划线的请求URI。!_表示“URI中不存在下划线”。 RewriteRule:把符合条件的请求重定向到目标页面。R=302是临时重定向,如果你需要永久重定向(比如SEO需求),可以改成R=301;L表示这是最后一条规则,匹配后不再执行后续规则。
额外注意事项:
- 确保你的Apache服务器已经启用了
mod_rewrite模块,如果没启用,需要先在服务器配置里开启它。 - 测试的时候可以用不同的请求验证:比如访问
domain.com/text.php(不含下划线)会跳转到目标页面,而domain.com/_text.php(含下划线)会正常加载对应文件。 - 如果你的目标页面路径有特殊字符,记得用反斜杠转义(比如上面的
.php里的点)。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

