Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

.htaccess url-rewrite if file not exists

I must do a little trick for a site! The idea is:

  • if a file for a required url exists then I go to that url, doing nothing more;
  • if a file for a required url not exists, I must go to a file.php and than do something, but NOT changing the url!

example:

www.mysite.com/page1.htm -> exists -> go to file page1.htm

www.mysite.com/page2.htm -> NOT exists -> go to file default.php but with url "www.mysite.com/page2.htm"

It's possible to do this all by .htaccess?

like image 990
Kiavor Avatar asked Mar 29 '11 08:03

Kiavor


2 Answers

RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^.*$ /default.php [L] 
like image 145
user237419 Avatar answered Sep 16 '22 21:09

user237419


It is not mentioned here but FallbackResource is the new recommended way of handling not-found (404) URLs. Example:

FallbackResource /not-404.php  

From Apache manual:

Use this to set a handler for any URL that doesn't map to anything in your filesystem, and would otherwise return HTTP 404 (Not Found).

like image 33
anubhava Avatar answered Sep 18 '22 21:09

anubhava