从子目录中的 URL 中删除 .php
Remove .php from URL in subdirectory
在 CentOS 6 运行 apache 2.4 和 DirectAdmin 上,我有一个 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/.php -f
RewriteRule ^(.+?)/?$ .php [L]
你可以使用 Apache mod_rewrite
Just add this code to your root directory .htaccess
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]
在 CentOS 6 运行 apache 2.4 和 DirectAdmin 上,我有一个 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/.php -f
RewriteRule ^(.+?)/?$ .php [L]
你可以使用 Apache mod_rewrite
Just add this code to your root directory .htaccess
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]