如何通过.htaccess将网站根目录内容伪装为子目录形式展示?
解决方案
你的需求完全可行,问题出在规则的位置和方向搞反了。你需要把配置放在根目录的.htaccess文件里,而非test子目录下,具体配置如下:
RewriteEngine On # 匹配/test/开头的请求,内部重写到根目录对应路径 RewriteRule ^test/(.*)$ /$1 [L,PT] # 处理访问/test不带斜杠的情况,重定向到带斜杠的标准路径 RewriteRule ^test$ /test/ [R=301,L]
规则说明
RewriteRule ^test/(.*)$ /$1 [L,PT]:当用户访问domain.com/test/或domain.com/test/option1/这类路径时,服务器会内部读取根目录的对应内容(/或/option1/),但URL保持test/开头的伪装形式。PT标志确保后续服务器模块能正确识别重写后的路径,避免出现404错误。- 第二条规则用于统一路径格式,防止用户输入
domain.com/test时出现内容或路径不一致的问题。
注意事项
- 确保Apache服务器已启用
mod_rewrite模块。 - 删除
test子目录下的.htaccess文件,避免配置冲突。 - 如果根目录原本存在物理的
test文件夹,需先删除或重命名,否则服务器会优先访问物理文件夹,导致重写规则失效。
内容的提问来源于stack exchange,提问作者yom
相关产品推荐
相关产品推荐

