通过.htaccess重定向不存在的网站页面

时间:2014-02-25 22:08:47

标签: html apache .htaccess redirect

我现在遇到一个问题,访问者浏览到使用的页面存在于我的服务器上但不再存在。这是因为我最初决定使用子目录而不是子域。因此,人们发布了指向页面的直接链接而不是目录到各种留言板。因此,当人们谷歌并找到我的网站的链接时,他们会点击人们链接的内容,并将其指向“未找到”页面。

为了更好地解释,这是我尝试举例的最佳尝试。

人们用来访问我网站的主要网址是hxxp://example.com/subsite/。在该/ subsite /目录中,文件,例如welcome.html,about.html,contact.html。所以发生的事情是,当人们开始传播我的网站链接时,他们会传播一个链接,例如hxxp://example.com/subsite/welcome.html而不仅仅是hxxp://example.com/subsite/。截至目前,子网站目录(主要)只有一个index.html文件。

我想要实现的是,每当有人试图导航到该子目录中不存在的任何网页时,它会将它们重定向到index.html文件。我想通过.htaccess文件来完成这个。

我尝试使用下面的代码自己做这个,但显然我对.htaccess和apache模块的工作方式太新了,下面的代码会导致一个不变的重定向循环。

<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ hxxp://example.com/subsite/ [L,QSA]
</IfModule>

如果有人有任何意见或需要我澄清任何信息,请告诉我。任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用:

 RewriteEngine on
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(subsite)/.+$ /$1/ [L,NC,R=301]