处理.html为.php(lighttpd)?

I am trying to rewrite all .php pages to be .html. I'm using this expression:

url.rewrite-once = ( "^(.*)\.php$" => "$1.html" )

And it works, until I use $_GET arguments.

How can I make it so http://website.com/search.php?find=query will just be http://website.com/search.html?find=query ?

Preserving the arguments when it is passed through mod_rewrite?

Try:

url.rewrite-once = ( "^(.*)\.php\??(.*)?$" => "$1.html?$2" )

This should match with or without query string arguments.

Since you are trying to make .php files appear as .html files, I think the expressions may be reversed. You will want to match on .html and rewrite to the .php file.

The following changes to /etc/lighttpd/lighttpd.conf file allow php to be executed inside .html files.

I commented out this line

server.modules = (
     "mod_access",
     "mod_alias",
     #"mod_compress",
     "mod_redirect",
}

and included this line

fastcgi.map-extensions    = ( ".html" => ".php" )

then restarted the server

sudo service lighttpd force-reload

The reference I used: http://www.cyberciti.biz/tips/lighttpd-map-html-pages-to-php-execute-html-pages-as-php.html