apache - 从子目录中的 URL 中删除 .php
问题描述
在运行 apache 2.4 和 DirectAdmin 的 CentOS 6 上,我有一个 wordpress 网站。除了 wordpress 标准架构之外,我还想要一些位于子目录中的半静态页面。
文件系统如下:/home/user/public_html/sub/static1.php
所需的网址如下:https://domain/sub/static1
.php
目前我打开带有扩展名的页面没有问题。但我想删除它。我尝试在其中添加一些重写规则,.htaccess
但由于请求被重定向到主页,所以我失败了。
我试图在网上找到一些解决方案,包括这个网站,但没有什么能帮助我。我认为 DirectAdmin 涉及此问题。
任何帮助,将不胜感激
解决方案
在您的/home/user/public_html/sub/.htaccess
文件中,使用以下代码:
Options -MultiViews
RewriteEngine on
# remove php
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{REQUEST_URI} !/index\.php$
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=301,L]
# rewrite with php php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/sub/$1.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
推荐阅读
- javascript - 如何使用 Queryselector 和 addeventListener 函数将附加代码转换为 ES6 // 新转换的代码将是什么?
- reactjs - “您可能需要适当的加载程序来处理此文件类型,目前没有配置加载程序来处理此文件”
- r - 从 R 函数获取 kable 输出
- c++ - 右值如何分配给汇编中的左值?
- android - 从具有一百万行的sqlite表中选择行的有效方法
- javascript - bootstrap 4 药片在点击时不变色
- java - 井字游戏循环在平局时停止 - Java
- javascript - 如何遍历包含另一个对象的对象
- python - VSCodium 没有在 Python 中导入模块
- postgresql - 使用 Postgres 播放 Scala Slick 示例 (v.2.8.x)