防止以.php文件扩展名加载页面(仅在没有它的情况下加载)

Vla*_*mir 5 php .htaccess

我的.htaccess文件中有一个重写条件,它不需要.php文件扩展名

RewriteEngine On
RewriteRule ^([^.]+)$ $1.php
Run Code Online (Sandbox Code Playgroud)

所以http://site.com/blog打开http://site.com/blog.php

但如果旧用户键入/blog.php,它也会加载页面

有没有办法防止或重定向页面与.php或任何其他文件扩展名没有它?

我的意思是如果用户输入/blog.php或/blog.asp它应该无法加载或重定向到/ blog(没有扩展)

Rav*_*yal 4

实现此目的的更好方法是仅在.php存在该名称的情况下重写。否则抛出404原始 URL。第二组规则将负责删除扩展并避免重定向循环。

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]

RewriteCond %{THE_REQUEST} ^(?:GET|POST)\ /.*\.php\ HTTP.*$ [NC]
RewriteRule ^(.*)\.php$ $1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)