定制.htaccess路由文件:实现域名任意后缀路径重定向至index.html
没问题,这就给你一份完全符合需求的.htaccess配置文件,同时我会把关键规则的作用解释清楚,方便你根据自己的场景调整:
最终.htaccess配置文件
RewriteEngine On # 排除实际存在的文件(比如css、js、图片等静态资源) RewriteCond %{REQUEST_FILENAME} !-f # 排除实际存在的目录 RewriteCond %{REQUEST_FILENAME} !-d # 将所有非文件/非目录的请求重定向到index.html RewriteRule ^(.+)$ /index.html [L,R=302]
规则细节说明
RewriteEngine On:必须开启这条,否则所有重写规则都不会生效,相当于打开Apache的URL重写功能开关。- 两条
RewriteCond:这是规则的前置条件,目的是避免把真实存在的静态文件/目录也重定向到index.html——比如你的网站有style.css或者images/目录,访问这些路径时应该正常返回资源,而不是跳转到首页。 RewriteRule ^(.+)$ /index.html [L,R=302]:^(.+)$:匹配域名后任意非空的路径(比如/anything、/abc/123这类)。[L]:表示这是最后一条规则,匹配到之后就不再执行后续的重写规则。R=302:表示这是临时重定向,如果你的业务需要永久重定向(比如SEO需求),可以改成R=301。
补充:单页应用(SPA)适配方案
如果你的网站是Vue、React这类单页应用,希望地址栏保持用户输入的路径不变,但实际内容由index.html渲染,可以把重定向规则改成内部转发,去掉R=302标志:
RewriteRule ^(.+)$ /index.html [L]
内容的提问来源于stack exchange,提问作者Ashrafuzzaman Rafi
相关产品推荐
相关产品推荐

