如何将所有 404 错误重定向到另一个域?
我找到了
Error 404 http://example.com/error.html
但是我需要:
if Error 404 (.*) http://example.com/$1
我试过了:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ http://example.com/$1
但它会重定向所有请求,事实上,如果我运行一个 .php 脚本,该脚本生成一个带有一些 404 链接的页面,则该脚本的 URL 会变成
http://example.com/script.php
相反,URL 应保持不变,仅 404 链接应重定向到其他域。
解决方案?
1 - 创建ErrorDocument
像这样的指令:
ErrorDocument 404 /404.php
2 - 然后创建你的404.php
像这样:
<?php
if ($_SERVER["HTTP_HOST"] == "domain.com") // current domain
header('Location: http://example.com' . $_SERVER["REQUEST_URI"], TRUE, 301);
?>
更新仅使用 .htaccess:
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ http://example.com%{REQUEST_URI} [L,R=301]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)