我在免费托管网站000webhost上托管域名,我想将所有不存在的文件或文件夹重定向到我的主页。我使用的代码是:
RewriteEngine on
rewritecond %{http_host} ^domain\.com$ [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,l]
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://www.domain.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.html
可行,但网址不会更改为主页。就像我尝试打开www.domain.com/blaa
一样,它会将我重定向到主页,但网址仍为www.domain.com/blaa
。我希望将其更改为www.domain.com
。
如果我尝试打开存在于我的根文件夹中的有效目录,它还会重定向到主页。就像我试图打开www.domain.com/folder
一样,它应该导致该文件夹中的文件和目录,而不是将其重定向到主页,网址仍然与www.domain.com/folder
相同。
此外,我想继续使用上述2条规则,使用www.domain.com打开WWW和index.html网站
请帮帮我。
提前致谢。
答案 0 :(得分:0)
根据您的问题标题,如果请求不是针对文件或目录,要重定向到主页,您可以使用:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ / [L]
您还可以使用ErrorDocument指令重写不存在的对主页的请求
ErrorDocument 404 /