php - 如何编辑 .htaccess 以删除 .php

标签 php .htaccess

我的所有页面都以 .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

解释这是如何工作的

Ans. 此规则将匹配 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”,那么您可以直接使用 < em>“www.url.com/path1”。

关于php - 如何编辑 .htaccess 以删除 .php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22740327/

相关文章:

php - 使用 php 从 mysql 购物车中删除商品

php - 如何在php中从数据库中的文本框中写入文本

apache - Symfony .htaccess 为 app_MYNAME.php 添加规则

.htaccess - 2 域名 (EN/FR) 1 FTP 重定向

php - 在桌面和智能手机中为不同域索引相同的 URL

php - 乔姆拉!根目录

php - 引号导致页面错误

php - 301 重定向但排除子目录

image - 将 WordPress 上传迁移到 Amazon S3

php - htaccess 301 重定向 url