.htaccess url-rewrite if file不存在

Kia*_*vor 30 .htaccess mod-rewrite url-rewriting file-exists

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

  • 如果存在所需网址的文件,那么我会转到该网址,不做其他任何事情;
  • 如果所需网址的文件不存在,我必须转到file.php而不是做某事,但不要更改网址!

例:

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

www.mysite.com/page2.htm - >不存在 - >转到文件default.php但使用网址"www.mysite.com/page2.htm"

可以通过.htaccess完成所有这些操作吗?

use*_*419 68

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /default.php [L]
Run Code Online (Sandbox Code Playgroud)


anu*_*ava 10

这里没有提到,但FallbackResource处理未找到(404)URL的新推荐方法.例:

FallbackResource /not-404.php 
Run Code Online (Sandbox Code Playgroud)

来自Apache手册:

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


小智 5

实现404错误规则.不需要mod_rewrite:

ErrorDocument 404 /default.php
Run Code Online (Sandbox Code Playgroud)

  • 这可能不是你想要的.这会将HTTP 404状态(找不到文件)标头发送回浏览器(以及Google).因此,只能将其用于有用的"未找到文件"页面. (2认同)