如果使用.htaccess

时间:2016-06-23 14:43:47

标签: .htaccess

我在免费托管网站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
  1. 可行,但网址不会更改为主页。就像我尝试打开www.domain.com/blaa一样,它会将我重定向到主页,但网址仍为www.domain.com/blaa。我希望将其更改为www.domain.com

  2. 如果我尝试打开存在于我的根文件夹中的有效目录,它还会重定向到主页。就像我试图打开www.domain.com/folder一样,它应该导致该文件夹中的文件和目录,而不是将其重定向到主页,网址仍然与www.domain.com/folder相同。

    < / LI>

    此外,我想继续使用上述2条规则,使用www.domain.com打开WWW和index.html网站

    请帮帮我。

    提前致谢。

1 个答案:

答案 0 :(得分:0)

根据您的问题标题,如果请求不是针对文件或目录,要重定向到主页,您可以使用:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ / [L]

您还可以使用ErrorDocument指令重写不存在的对主页的请求

ErrorDocument 404 /