apache - 从子目录中的 URL 中删除 .php

标签 apache .htaccess url-rewriting centos6 directadmin

在运行 apache 2.4 和 DirectAdmin 的 CentOS 6 上,我有一个 wordpress 网站。除了 wordpress 标准架构之外,我还想要一些位于子目录中的半静态页面。

文件系统为:/home/user/public_html/sub/static1.php
所需的 URL 为: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]

关于apache - 从子目录中的 URL 中删除 .php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52627077/

相关文章:

php - 没有自定义帖子类型 slug 的 WordPress slug

c# - 如何避免 Masterpage 的 url 重写

.htaccess - 使用 htaccess URLrewrite 设置语言

apache - 500 内部服务器错误,.htaccess 文件直接从工作服务器复制

java - HWPFDocument 位于哪里?我在 POI 项目中找不到它

apache - 通过apache重写规则永久重定向

php - laravel 的组域路由在 laragon 中不起作用

xcode - .htaccess 语法代码需要修改

php - Apache 2 mod_rewrite 和 PHP。从 htaccess 修改 $_SERVER ['REQUEST_URI' ] 值?

php - 重定向 POST htaccess