微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 .htaccess 从 URL 中删除“/php/”子目录

如何解决使用 .htaccess 从 URL 中删除“/php/”子目录

我一直在尝试在我正在构建的网站上实现以下重写/重定向,但我很挣扎,无法在线找到正确的答案。

我想改写

http://www.example.com/PHP/someFile.PHP

致:

example.com/someFile

我已经在我的 .htaccess 根文件中使用以下代码实现了大部分所需的结果,但我需要帮助删除 PHP 子目录:

RewriteEngine on

# remove www from url
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301,NC]

# redirect /file.PHP to /file
RewriteCond %{THE_REQUEST} \s/([^.]+)\.PHP [NC]
RewriteRule ^ /%1 [NE,L,R]

# internally map /file to /file.PHP
RewriteCond %{REQUEST_FILENAME}.PHP -f
RewriteRule ^(.*)/?$ /$1.PHP  [L]

任何帮助将不胜感激。

解决方法

在您的站点根目录 .htaccess 中使用这种方式:

RewriteEngine on

# remove www from url
RewriteCond %{HTTP_HOST} ^www\.(example\.com)$ [NC]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

# redirect /php/file.php to /file
RewriteCond %{THE_REQUEST} \s/+(?:php/)?([^.]+)\.php [NC]
RewriteRule ^ /%1 [NE,L,R=301]

# internally map /file to /php/file.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/php/$1.php -f
RewriteRule ^(.+?)/?$ php/$1.php [L]

请务必在清除浏览器缓存后进行测试。

,

根据您展示的样品,您可以尝试以下操作吗? 在测试您的网址之前,请务必清除浏览器缓存。

i

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。