Remove .php from URL

后端 未结 11 961
生来不讨喜
生来不讨喜 2020-12-15 22:17

Ubuntu 14.04LTS 32bit

LAMP

I know it\'s an old question but..

I need it to remove .php anywhere it finds it from the visible url. It needs to work wi

11条回答
  •  感动是毒
    2020-12-15 22:27

    It works for me:

        #On rewrite
        RewriteEngine On
    
        # Allow any files or directories that exist to be displayed directly
        RewriteCond %{REQUEST_FILENAME} !-f 
        RewriteCond %{REQUEST_FILENAME} !-d
    
        # rewrite domain.com/username.php to username
        RewriteRule ^([A-Za-z0-9_-]+)/?$ $1.php [NC,L]
        RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9]+)/?$ $1/$2.php [NC,L]
        RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9]+)/([A-Za-z0-9]+)/?$ $1/$2/$3.php [NC,L]
    

    And more: Look at my rewrite file for social portal like fb:

    # allow only from ip range /8 /16 /24 /31
        #Order deny,allow
        #Deny from all
        #Allow from 89.230.0.0/16
    
        # On rewrite
        RewriteEngine On
    
        # [NC]- case-insensitive 
        # [L] - Last Rule , stop the rewriting process here 
        # [OR] = Or - If it matches this condition or the next 
        # [QSA] -   Append query string to rewriting url
        # [R] - redirect [R=301] move permanently, 302 - temporarily, 403 - Forbidden, 404 - Not Found,  410 - Gone
    
        # fix folder redirect images and css js/images/css/media
        RewriteRule ^.+?/((img|css|js|media|upload|posts)/.+)$ /$1 [L,R=301,NC]
    
        # Allow any files or directories that exist to be displayed directly
        RewriteCond %{REQUEST_FILENAME} !-f 
        RewriteCond %{REQUEST_FILENAME} !-d
        # does not work on IIS windows server url rewrite when importing
        # RewriteCond %[REQUEST_FILENAME] !-l
    
        # rewrite example.xx/index.php na example.xx/
        RewriteCond %{THE_REQUEST} ^.*/index\.php 
        RewriteRule ^(.*)index\.(php|html?)$ / [R=301,NC,L]
    
    
        #portfolio rewrite folder rewrite
        # RewriteRule ^([portfolio]+)/?$ /portfolio/index.php?id=$1 [NC,L]
    
        # pretty url example.xx/id/post/number 
        # rewrite domain.com/username like twitter or facebook users
        RewriteRule ^([A-za-z0-9_-]+)/?$ index.php?username=$1 [NC,L]
        # domain.com/post/name
        RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9]+)/?$ profil.php?id=$1&menu=$2 [NC,L]
        # domain.com/cat/post/id
        RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9]+)/([0-9]+)/?$ profil.php?id=$1&menu=$2&page=$3 [NC,L]
    
        #RewriteRule ^([A-Za-z0-9_-]+)/(ustawienia)/?$ ustawienia.php?id=$1&menu=$2 [NC,L]
        #RewriteRule ^([A-Za-z0-9_-]+)/(wpisy)/?$ profil0.php?id=$1&menu=$2 [QSA,NC,L]
        #RewriteRule ^([A-Za-z0-9_-]+)/(fani)/?$ profil1.php?id=$1&menu=$2 [QSA,NC,L]
        #RewriteRule ^([A-Za-z0-9_-]+)/(ogladasz)/?$ profil2.php?id=$1&menu=$2 [QSA,NC,L]
        #RewriteRule ^([A-Za-z0-9_-]+)/(zdjecia)/?$ profil3.php?id=$1&menu=$2 [QSA,NC,L]
        #RewriteRule ^([A-Za-z0-9_-]+)/(video)/?$ profil4.php?id=$1&menu=$2 [QSA,NC,L]
        #RewriteRule ^([A-Za-z0-9_-]+)/(ulubione)/?$ profil5.php?id=$1&menu=$2 [QSA,NC,L]
        #RewriteRule ^([A-Za-z0-9_-]+)/(wiadomosci)/?$ profil6.php?id=$1&menu=$2 [QSA,NC,L]
        #RewriteRule ^([A-za-z0-9_-]+)/?$ profil.php?id=$1 [NC,L]
        #RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9]+)/?$ profil.php?id=$1&menu=$2 [NC,L]
        #RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9]+)/([A-Za-z0-9]+)/?$ index.php?id=$1&dir=$2&post=$3 [NC,L]
    
        # Redirect all subdomains
        # RewriteCond %{HTTP_HOST} ^(.*)\.breakermind\.com
        # RewriteRule ^(.*)$ http://breakermind.com/$1 [R=301,QSA,NC,L]
    
        # Redirect all subdomains
        # RewriteCond %{HTTP_HOST} ^www.ns2.breakermind.com [NC]
        # RewriteRule ^(.*)$ http://breakermind.com/$1 [R=301,QSA,NC,L]
    
        # RewriteCond %{HTTP_HOST} ^ns2.breakermind.com [NC]
        # RewriteRule ^(.*)$ http://breakermind.com/$1 [R=301,QSA,NC,L]
    
        # Redirect from www. to non-www (unhash if need)
        # RewriteCond %{HTTP_HOST} ^www.breakermind.com [NC]
        # RewriteRule ^(.*)$ http://breakermind.com/$1 [R=301,QSA,NC,L]
    
        # Redirect from http:// to https:// (from no-ssl to ssl)
        #RewriteCond %{SERVER_PORT} 80
        #RewriteRule ^(.*)$ https://breakermind.com/$1 [R=301,QSA,NC,L]
    
    
        ErrorDocument 400 /er404.html
        ErrorDocument 401 /er404.html
        ErrorDocument 402 /er404.html
        ErrorDocument 403 /er403.html
        ErrorDocument 404 /er404.html
        ErrorDocument 500 /er404.html
        ErrorDocument 502 /er404.html
        ErrorDocument 504 /er404.html
    
        #RewriteEngin On
        #RewriteCond %[REQUEST_FILENAME] !-d
        #RewriteCond %[REQUEST_FILENAME] !-f
        #RewriteCond %[REQUEST_FILENAME] !-l
        #RewriteRule ^(.+)$ index.php?c=$1 [QSA,L]
        #
        #        \w = [A-Za-z0-9_]  \d = [0-9]
    

    And here from my blog system:

            Options +FollowSymLinks
        RewriteEngine On
    
        RewriteCond %{THE_REQUEST} ^.*/index\.php 
        RewriteRule ^(.*)index\.(php|html?)$ / [R=301,NC,L]
    
        # category
        RewriteRule   ^category/?$ index.php?id=0&page=0  [NC,L]
        RewriteRule   ^category/([A-Za-z0-9]+)/?$ index.php?id=$1&page=0  [NC,L]
        RewriteRule   ^category/([A-Za-z0-9]+)/([0-9]+)/?$ index.php?id=$1&page=$2  [NC,L]
        RewriteRule   ^category/([A-Za-z0-9]+)/([0-9]+)/([A-Za-z0-9]+)/?$ index.php?id=$1&page=$2&title=$3  [NC,L]
    
        # autor
        RewriteRule   ^autor/?$ index.php?id=0&page=0  [NC,L]
        RewriteRule   ^autor/([A-Za-z0-9]+)/?$ index.php?id=$1&page=0  [NC,L]
        RewriteRule   ^autor/([A-Za-z0-9]+)/([0-9]+)/?$ index.php?id=$1&page=$2  [NC,L]
    
        # article, gallery, tags
        RewriteRule   ^article/([A-Za-z0-9]+)/?$ article.php?id=$1    [NC,L]
        RewriteRule   ^gallery/([A-Za-z0-9]+)/?$ gallery.php?id=$1    [NC,L]
        RewriteRule   ^tags/([A-Za-z0-9]+)/?$ tags.php?id=$1    [NC,L]
        RewriteRule   ^archive/([0-9]+)/([0-9]+)/?$ archive.php?year=$1&month=$2    [NC,L]
    
        # custom page rewrite
        RewriteRule   ^page/([A-Za-z0-9]+)/?$ page.php?id=$1    [NC,L]
    
        # fix folder redirect images and css js/images/css/media
        RewriteRule ^.+?/((admin|img|css|js|media|upload|posts)/.+)$ /blog/$1 [L,R=301,NC]
    
        # user or category user.php
        # RewriteRule   ^([A-Za-z0-9]+)/?$ index.php?user=$1  [NC,L]
    
        # example
        # RewriteRule ^([folder])/([category])/([A-Za-z0-9]+)/?$ index.php?id=$3&cat=$2 [NC,L]
    

提交回复
热议问题