Htaccess 404 - 重定向

时间:2014-10-19 12:14:56

标签: regex apache .htaccess mod-rewrite redirect

如果有人请求不存在的页面,例如

site.com/blabla/?search=blabla

使用此htacess

ErrorDocument 404 /

他们被重定向到主页并使用相同的网址site.com/blabla/?search=blabla 我想要做的是,将它们重定向到IP,而不是主页。试过这个;

ErrorDocument 404 http://64.233.185.94/

但它只是重定向到http://64.233.185.94/ 我想用未找到的网址重定向它,因此它应该重定向到

http://64.233.185.94/blabla/?search=blabla

此时。

这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

您需要使用mod_rewrite规则代替ErrorDocument

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !=64.233.185.94
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ http://64.233.185.94/$1 [L,R]

答案 1 :(得分:1)

您可以使用mod_rewrite来完成此任务。使用mod_rewrite,您可以测试所请求的文件或目录是否存在,如果它们不存在,您可以进行外部重定向:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILNEMAE} !-d
RewriteRule ^ http://64.233.185.94%{REQUEST_URI} [R,L]

在测试结果符合预期后,将R标记更改为R=301