如果找不到特定的URL - 301为root

时间:2015-10-05 10:40:49

标签: apache .htaccess mod-rewrite redirect

基本上我试图编辑我的.htaccess文件来执行以下操作: 我想要301到另一个URL的URL,但只有在找不到该URL时才会这样(404)。

因此,以下内容是不够的,因为它会重定向URL,无论是否找到了URL。

Redirect 301 /oldpage.html http://www.example.com/newpage.html

这可以通过.htaccess吗?

是的,我知道这可能是一个奇怪的请求,但我有理由需要这个。

2 个答案:

答案 0 :(得分:1)

在根目录中尝试此mod_rewrite规则.htaccess:

RewriteEngine On

# If the request is not for a valid directory
RewriteCond %{REQUEST_FILENAME} !-d
# If the request is not for a valid file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^oldpage\.html http://www.example.com/newpage.html [L,NC,R=302]

答案 1 :(得分:0)

你真的不想301 a URL to another URL。永久重定向会导致各种无法恢复的问题。

  

我想301 ...如果找不到该网址(404)。

同样,这是一个非常糟糕的主意。即使您的部署和测试过程非常完美,您也需要能够查看和响应来自的请求。

在延迟将用户退回主页后,使用错误文档显示带有元重写的消息。