找不到页面应该与rewriterule htaccess一起使用

时间:2012-07-10 10:00:45

标签: .htaccess mod-rewrite errordocument

我想将我的url从php extention重写为html。如果该文件不是 发现它应该重定向到某个客户页面(404.php)。

我写了这样的规则:

RewriteEngine on
RewriteRule ^$ front/index.php?query=$1 [NC,L,QSA]
RewriteRule (.*)\.(html) ?page=$1 [L,NC,QSA]
ErrorDocument    404    /expertLocal/?page=404

使用这个我面临这样的问题。 http://somedomain.com/expertLocal/contact.html

它将工作文件因为我有contact.php页面。如果我要写somedomain.com/expertLocal/contactxyz.php然后重定向到404.php页面,但是如果我在地址栏中写http://somedomain.com/expertLocal/contactxyz.html那么它会发出警告而不是404.php页面。

这是因为我使用了自己的框架,在这个结构文件中首先重定向到控制器索引文件,然后在那里包含请求的文件。

include(FRONT_CONTROLLER_PATH . $page . '.php');   like this.

你能帮帮我吗?

提前致谢..

1 个答案:

答案 0 :(得分:0)

我不确定您的框架,但检查下面的代码是否有帮助。

$filename = FRONT_CONTROLLER_PATH . $page . '.php';
if (file_exists($filename)) 
{
       include($filename); 
}
else
{
       // include 404 page here
}