在Apache中重写资源URL

时间:2014-06-06 00:44:52

标签: apache .htaccess url rewrite http-status-code-404

我正在制作类似于YouTube和Facebook的Ajax导航,我想在下一步做:

当用户转到地址栏中的特定网址时,例如:

http://example.com/some-resource

如果在服务器中找不到某个资源,Apache将抛出404,而我想重定向到处理nagivation的页面(index.html)并让它处理其余部分。

换句话说,我不希望Apache显示错误页面,我希望始终使用指定的URL将404重定向到index.html。

例如:

http://example.com/some-resource< - some-resource不存在,然后使用新网址转到index.html。

http://example.com/img/logo.jpg< - 资源存在,不做任何事情。

我该怎么做?谢谢

1 个答案:

答案 0 :(得分:0)

将此代码放入DOCUMENT_ROOT/.htaccess文件中:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /index.html [L,R]

或者您也可以使用ErrorDocument 404这样做:

ErrorDocument 404 http://example.com/index.html