douye1940 2013-09-11 13:51
浏览 36
已采纳

PHP / .htaccess:从url中删除php扩展

I was using .htaccess code to remove .php extension for all my web pages. Here's the code I use:

RewriteEngine On
RewriteCond /%{REQUEST_FILENAME}.php -f
RewriteRule ^([a-zA-Z0-9_-\s]+)/$ /$1.php

It doesn't seem to work. I think I'm missing something. When I type www.mysite.com/about/ to get www.mysite.com/about.php it returns error 404 (page not found). Can someone please shed some light.

Thanks, Paul G.

  • 写回答

2条回答 默认 最新

  • duanph1978 2013-09-11 14:16
    关注
    Options +FollowSymLinks -MultiViews
    
    RewriteEngine On
    RewriteBase /
    
    # If folder does not exist
    RewriteCond %{REQUEST_FILENAME} !-d
    # and file exist
    RewriteCond %{DOCUMENT_ROOT}/$1\.php -f
    # uncomment the below rule if you want the "/" to be required 
    # otherwise leave as is
    # RewriteRule ^([^/]+)/$ $1.php [L]
    # internally show the content of filename.php
    RewriteRule ^([^/]+)/?$ $1.php [L]
    

    The above rule will:

    1. will not redirect if a folder exist
    2. will not redirect if the file does not exist
    3. will redirect what comes before the / if one is present as the file name

    So it will work for all these examples:

    http://domain.com/about/
    http://domain.com/about
    http://domain.com/contact/
    http://domain.com/contact
    

    If you want you can remove the ?, like the commented rule, to make it accept only URL's that end with a /.

    http://domain.com/about/
    http://domain.com/contact/
    

    Now these are important step for the above to work:

    1. It must go into the .htaccess on your root folder for example /home/youraccount/public_html/.htaccess
    2. The Options before the rewrite rule are very important specially -MultiViews
    3. The file must exist on the same place the .htaccess is for example in your case the about.php file
    4. The PHP must be working obviously.

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部