如何仅删除子目录下页面的 .php 扩展名?

我正在尝试仅删除网站子类别文件夹下页面的 .php 扩展名。


currently: example.com/blog/my-first-blog.php


what i want: example.com/blog/my-first-blog/


我在 .htaccess 中尝试了以下规则(放在 root 中)但它仍然显示 .php


RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{DOCUMENT_ROOT}/blog/$1.php -f

RewriteRule ^(.+?)/?$ /blog/$1.php [L]


心有法竹
浏览 208回答 3
3回答

素胚勾勒不出你

实现您想要的结果的最佳方法是构建路由。首先,您需要将所有流量重写到 index.php:RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^.*$ /index.php [L,QSA]然后,您需要编写将解析 URL 路径的路由器。路由器最简单的例子是:$url = urldecode(preg_replace('/\\?(.*)$/', '', $_SERVER['REQUEST_URI']));if ($url == '/contact/about') {    include 'contact.php';}您可以检查它如何在PHP框架中工作以获得更好的解决方案,或使用其中之一。

30秒到达战场

我发现我只需要在“/guide/”目录下创建 .htaccess 文件。使用以下规则说明RewriteBase /guide/以确保它只删除“/blog/”文件夹下的 .phpRewriteEngine On RewriteBase /blog/RewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME}\.php -fRewriteRule ^(.*)$ $1.php [NC,L]
打开App,查看更多内容
随时随地看视频慕课网APP