.htaccess重定向问题

时间:2009-12-29 07:27:02

标签: .htaccess

我有以下404页....

RewriteCond%{REQUEST_FILENAME}! - f RewriteRule(。+)$?file = $ 1 [L]

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

1 个答案:

答案 0 :(得分: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响应代码,这对于为丢失的页面/损坏的链接生成分析非常有用。