将每个请求重定向到索引页

将每个请求重定向到索引页

我正在尝试将除根文件夹之外的所有用户请求重定向到我的索引页。

因此,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.cssjs/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]

相关内容