如何编辑 .htaccess 以删除.php


How to edit .htaccess to remove .php

我所有的页面都以.php结尾,即使网址栏中的扩展名发生了变化,我仍然需要这些页面运行PHP。我想要一个这样的页面

website.com/page.php

website.com/page

我已经研究了这个问题的六种解决方法,但似乎都没有奏效。以下是一些示例。

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*'.php$ %{REQUEST_FILENAME}.php [L, QSA]
RewriteEngine On
RewriteRule '/([^'/]+)'/$ $1.php
# once per htaccess file
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z0-9-_]+)/?$ /$1.php
RewriteCond %{REQUEST_URI} !^/shopName1.php$
RewriteRule ^([a-z0-9-_]+).php$ /$1/ [R]
RewriteRule ^shops/shopName1/?$ /shopName1.php
RewriteRule ^shopName1.php$ /shops/shopName1/ [R]

隐藏.php扩展

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

解释 这是如何工作的

答:此规则将匹配 url.com/path/ 并检查是否存在 url.com/path.php。如果文件存在,则应用提前重写规则。

目前我使用了这个规则 工作完美,希望对您有所帮助!


更新

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}'.php -f 
RewriteRule ^(.*)$ $1.php

在上面的代码中,-d 定义为目录,-f 定义为常规文件。

此规则与上述相同,但其支持字母数字 URL。上面的代码经过测试,可以与我的服务器文件正常工作。

示例:如果您的文件名是"www.url.com/path1.php",那么您可以使用"www.url.com/path1"直接访问此文件。

试试这个

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

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

只需创建一个名为page的目录并重命名page.php作为索引.php然后放入/page。如果你需要动态目录(如/product5 run details.php?productid=5),那么 .htaccess 解决方案会很有用。