31

我必须为网站做一个小技巧!这个想法是:

  • 如果存在所需 url 的文件,那么我会转到该 url,什么也不做;
  • 如果所需 url 的文件不存在,我必须转到 file.php 并做一些事情,但不更改 url!

例子:

www.mysite.com/page1.htm -> 存在 -> 转到文件 page1.htm

www.mysite.com/page2.htm -> 不存在 -> 转到文件 default.php 但网址为“www.mysite.com/page2.htm”

这一切都可以通过.htaccess 来完成吗?

4

3 回答 3

78
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /default.php [L]
于 2011-03-29T08:59:12.580 回答
10

这里没有提到,但FallbackResource处理 not-found (404) URL的新推荐方法。例子:

FallbackResource /not-404.php 

来自Apache 手册

使用它为任何不映射到文件系统中任何内容的 URL 设置处理程序,否则将返回 HTTP 404(未找到)。

于 2015-07-21T17:18:08.413 回答
5

实施 404 错误规则。不需要 mod_rewrite:

ErrorDocument 404 /default.php
于 2015-05-22T08:38:52.277 回答