如何通过.htaccess实现通用php.ini至域名根目录的重定向
通用.htaccess重定向解决方案:将任意域名下的/php.ini请求导向根目录
没问题,我给你一个适配任意域名的可行方案,直接在.htaccess里配置就行,步骤如下:
- 先确认你的Apache服务器已经开启了
mod_rewrite模块,这是重写规则生效的前提。如果不确定,可以联系服务器管理员或者查看phpinfo()里的模块信息。 - 打开网站根目录下的
.htaccess文件(如果没有就新建一个),添加以下规则:
RewriteEngine On # 匹配任意域名下的/php.ini请求,重定向到对应域名的根目录 RewriteCond %{REQUEST_URI} ^/php\.ini$ [NC] RewriteRule ^(.*)$ https://%{HTTP_HOST}/ [R=301,L]
规则解释:
RewriteEngine On:必须放在最前面,用来启用重写引擎,没有这行后面的规则都不会生效。RewriteCond %{REQUEST_URI} ^/php\.ini$ [NC]:这行是条件判断,只匹配请求路径恰好是/php.ini的情况,[NC]参数让匹配不区分大小写,所以不管是/php.ini还是/PHP.INI都会被捕获。RewriteRule ^(.*)$ https://%{HTTP_HOST}/ [R=301,L]:核心重写规则,%{HTTP_HOST}会自动获取当前请求的域名(比如www.xxx.com、abc.com等等),这样就实现了任意域名的适配;R=301表示永久重定向,对搜索引擎友好;L表示这是最后一条规则,匹配到之后就不再执行后续的重写规则了。
额外提示:
- 如果只是测试阶段需要临时重定向,可以把
R=301改成R=302,测试完成后再改回301。 - 确保服务器允许该目录使用
.htaccess,需要在Apache的主配置里对应目录设置AllowOverride All,否则.htaccess的规则不会生效。 - 配置完成后,可以直接在浏览器里输入
你的域名/php.ini测试,看看是否自动跳转到根目录,也可以用浏览器开发者工具的网络面板查看重定向状态码是否正确。
内容的提问来源于stack exchange,提问作者Jo Maeyens
相关产品推荐
相关产品推荐

