从 URL 中删除 .php 但它仍应指向原始文件(mod-重写)

Remove .php from URL but it should still be pointing towards the original file (mod-rewrite)

亲爱的程序员朋友们

我对网络开发还很陌生。特别是对于 .htacces 文件。所以我正在开发一个网页,我想删除 .php 文件扩展名。它适用于 html 但不适用于 php 扩展,如果我为它使用相同的代码。

我想要实现的是当用户被重定向到 https://website.com/pong.php the URL gets changed to: https://website.com/pong 时。但是 URL 应该仍然指向第一个 URL。 HTML 个文件也是如此。

这就是我删除 html 扩展名的代码。还有一行自动将页面重定向到https协议(第3行)

Options +MultiViews
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ .html [NC,L]

我尝试使用此方法删除 php,但没有成功。这是我添加到代码中的行。

RewriteRule ^([^\.]+)$ .php [NC,L]

我试过这个问题的答案:

但是当我试图打开页面时它产生了这个错误:ERR_TOO_MANY_REDIRECTS

在此先感谢您的帮助

根据您展示的示例,请您尝试以下操作。 请确保在测试您的 URL 之前清除浏览器缓存。

RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ .php [NC,L]

RewriteRule ^([^\.]+)$ .html [NC,L]