我正在尝试将除根文件夹之外的所有用户请求重定向到我的索引页。
因此,www.domain.com/page.ext
虽然www.domain.com/folder/page.ext
必须重定向,但还是可以的。
这是我的.htaccess:
RewriteEngine on
RewriteRule ^([^/]+)/?$ /index.html [L]
ErrorDocument 404 /index.html
它导致了一个问题Internal Server Error
,但我不知道为什么。
基本上,我想强制用户在各种情况下只访问 index.html 页面。
有什么建议吗?
编辑:
为了提供更多信息,这是我的网站结构:
/
|-- index.html
|-- css
|-- site.css
|-- js
|-- site.js
|-- images
|-- img1.png
|-- img2.png
|-- img3.png
正如你所见,它非常简单。
我需要做的是展示总是我的index.html
(使用css/site.css
,js/site.js
并且图像用于 css)
因此,无论用户请求什么页面,我的网站必须显示索引。这意味着即使出现 404 错误,即使用户请求的页面位于不存在的文件夹中,也必须显示索引!
答案1
在.htaccess
文件中,目录的相对路径(或RewriteBase
,如果已配置)用于匹配字符串(在正则表达式中正确无误,没有前导斜杠)和替换字符串。
尝试RewriteRule ^([^/]+)/?$ index.html [L]
编辑:
为了避免对您的 image/js/css 文件执行此操作,您可以使用来RewriteCond
阻止应用该规则:
RewriteCond %{REQUEST_URI} !^/images [NC]
RewriteCond %{REQUEST_URI} !^/css [NC]
RewriteCond %{REQUEST_URI} !^/js [NC]
RewriteRule ^([^/]+)/?$ index.html [L]