如何修改.htaccess以删除.php

时间:2014-03-30 04:40:51

标签: php .htaccess

我的所有页面都以.php结尾,我需要这些页面仍然能够运行PHP,即使扩展名已在url栏中更改。我想要一个像

这样的页面
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]

3 个答案:

答案 0 :(得分:3)

隐藏.php扩展名

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

说明如何工作

Ans。此规则将与 url.com/path / 匹配,如果 url.com/path.php 存在,请检查。如果文件存在,则提前处理以重写规则应用。

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


更新

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

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

此规则与上述相同,但支持 字母数字网址 。 上面的代码是我的服务器文件测试和工作正常。

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

答案 1 :(得分:2)

试试这个

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

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

答案 2 :(得分:0)

只需创建一个名为page的目录,并将page.php重命名为index.php并放入/ page。如果您需要动态目录(例如/ product5运行details.php?productid = 5),那么然后 .htaccess解决方案将非常有用。