0

首先,我的 ErrorDocument 404 /v1 永远不会重定向,但是如果我查看 Chrome Inspector,我确实遇到了 404 错误。起初我以为是因为我真的需要指定一个文件 ex:error.html,但这也不起作用。/v1 只是一个 wordpress 子域,我想在那里重定向我的所有错误。/v1 落在我的子域主页上。

我也想让错误页面动态化,但我不知道该怎么做。像这样的东西:

RewriteCond %{REQUEST_FILENAME} public_html/(.*)
ErrorDocument 404 /v1/%1

有任何想法吗?谢谢!!

4

3 回答 3

0

此语法不正确

RewriteCond %{REQUEST_FILENAME} public_html/(.*)
ErrorDocument 404 /v1/%1

因为ErrorDocumentRewriteCond(mod_rewrite) 没有任何关系,它是无条件的。

条件 404 处理示例:

ErrorDocument 404 /404.php
RewriteRule ^foo/ - [L,NC,R=404]
于 2013-09-14T18:04:59.537 回答
0

您将需要通过 php 脚本返回 404:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /404.php?path=$1 [L]

并且在404.php file

<?php
header("HTTP/1.0 404 Not Found");

print('The file that you requested: ' . $_GET['path'] . ' was not found\n');

// or include a special 404 page

include ('/path/to/' . $_GET['path']);
?>

或者你可能会?path=$1完全失去这部分,只是往​​里看$_SERVER['REQUEST_URI']

于 2013-09-14T19:35:11.880 回答
0

我使用这种语法!通常有效!

ErrorDocument 404 "<script>window.location.href='404.php?page='+window.location.href.split('/')[window.location.href.split('/').length-1];</script>"
于 2013-12-01T11:07:57.563 回答