如何通过.htaccess为子文件夹创建别名且URL导航不跳转?
没问题!完全可以通过.htaccess实现这个需求,而且能保证用户导航时URL始终显示你设置的别名alias,不会跳转到app路径。我给你一套经过验证的配置,你可以直接放到网站根目录的.htaccess文件里:
# 开启URL重写引擎 RewriteEngine On # 处理不带斜杠的alias访问,让浏览器自动补全斜杠(URL仍显示alias/) RewriteRule ^alias$ alias/ [L,R=301] # 核心规则:将alias路径的请求内部重写到app文件夹,URL保持不变 RewriteRule ^alias/(.*)$ app/$1 [L]
简单解释下每条规则的作用:
RewriteEngine On:开启Apache的URL重写功能,这是所有重写规则的基础。- 第二条规则:当用户访问
mydomain.com/alias(不带末尾斜杠)时,会自动跳转到mydomain.com/alias/,避免服务器找不到对应目录的问题,同时URL显示的还是别名路径。 - 第三条规则:这是核心的内部重写,所有以
alias/开头的请求,都会被服务器内部转发到app/对应的文件,但浏览器地址栏的URL完全不会变化,用户看到的始终是alias路径。
注意事项:
- 确保你的共享服务器已经开启了
mod_rewrite模块(大部分主流主机都会默认开启,如果没开可以联系主机商开启)。 - 一定要把这些配置放在网站根目录的
.htaccess文件中,不要放到app子文件夹里。 - 测试前记得清空浏览器缓存,避免旧的缓存影响测试结果。
- 如果你的
.htaccess里已经有其他重写规则,建议把这套规则放在最前面,避免规则冲突。
这样配置后,用户既可以通过mydomain.com/app/index.php访问,也能通过mydomain.com/alias/index.php访问,而且导航过程中URL会一直保持alias路径,不会跳转到app。
内容的提问来源于stack exchange,提问作者Caconde
相关产品推荐
相关产品推荐

