2009-12-29 122 views
0

我具有以下404页的....htaccess的重定向问题

的RewriteCond%{REQUEST_FILENAME}!-f 重写规则(+)$?FILE = $ 1 [L]

但它是将此页面显示到所有目录和页面事件的根目录

回答

1

确保在.htaccess或vhost声明中打开了重写引擎。另外,您需要检查请求是否存在目录或符号链接。这里有一个更新的例子:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule (.+)$ /404.php?page=$1 [L] 

Apache也有404 /文件未找到响应的文档处理程序。您可以通过REQUEST_URI标题访问请求的文件。下面是与相应的规则的Apache和PHP 404错误处理程序文件的一个示例:

的.htaccess:

ErrorDocument 404 /404.php

404.php:

<?php 
echo "Tried to access: {$_SERVER['REQUEST_URI']}"; 
?> 

我喜欢的ErrorDocument处理程序,例如Apache仍会记录404响应代码,这对于生成丢失页面/断开链接的分析非常有用。