dream1849
2012-03-17 22:28
浏览 56
已采纳

处理.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?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dtkf64283 2012-03-17 22:36
    已采纳

    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.

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • doskmc7870 2013-03-07 17:24

    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

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题