简体   繁体   中英

How i can remove the .php extension in .htaccess file?

My URLs like http://example.com/login.php and i want its shows like http://example.com/login In my website first page is login.php rather than index so i have set this option in .htaccess

Here is .htaccess file code

ErrorDocument 403 403.php
ErrorDocument 404 404.php
ErrorDocument 405 405.php
ErrorDocument 501 501.php

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ login.php [NC,L]
RewriteCond %{REQUEST_METHOD} !^(GET|POST|HEAD)
RewriteRule .* - [R=501,L]


Options -Indexes
DirectoryIndex login.php

<LimitExcept GET POST>
deny from all
</LimitExcept>
ServerSignature Off 
FileETag None
<IfModule mod_reqtimeout.so>
  RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500
</IfModule>



    Header set X-FRAME-OPTIONS SAMEORIGIN 
    Header set Content-Security-Policy: "child-src 'self' allow 'self'; media-src *; img-src *; "
    Header set Access-Control-Allow-Origin: "*"
    Header set X-XSS-Protection "1; mode=block"
    Header set Referrer-Policy "no-referrer | same-origin | origin | strict-origin | no-origin-when-downgrading"
    Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure

You can use:

# To externally redirect without .php
RewriteCond %{THE_REQUEST} \s/+(.+)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=301,L,NE]

# To internally rewrite to .php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM