使用 .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]

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用htaccess从URL中删除子目录名称?

如何从URL(.htaccess)中删除子目录的父目录

如何使用.HTACCESS重写子目录中的PHP文件

如何返回不带子文件夹/子目录的URL(使用PHP而不是htaccess)

如何使用.htaccess文件重写子目录的URL?

htaccess重写子目录中的get参数并使用php检索

使用 htaccess 在子目录中重写新规则

使用apache htaccess,允许访问子目录中父目录中受限的文件

.htaccess重定向后隐藏子目录URL

如何将 htaccess 文件用于子目录 url

.htaccess; 重定向做子目录而不显示在URL中

如何使用htaccess从根目录重定向到子目录中的文件

删除子目录中带有.htaccess的结尾斜杠

使用.htaccess从URL删除页码

htaccess代码删除子目录中的www和id和php

使用htaccess隐藏URL中的目录

使用.htaccess更改PHP URL

使用 php 或 .htaccess 清理 URL

隐藏PHP扩展名和隐藏子目录都在一个URL中.htaccess中不起作用

使用htaccess从codeigniter中的URL中删除index.php

如何使用 .htaccess 从 url 中删除 %20

如何使用.htaccess从URL中删除.cgi?

使用 .htaccess 在 URL 中删除重复标记 (?)

如何使用.htaccess将重定向子目录合并到根目录并同时删除HTML扩展名?

如何使用.htaccess重定向到子目录?

在子目录中使用htaccess来重定向页面

htaccess用于使用子目录文件的主域

从子目录网站URL删除index.php

如何使用htaccess重写URL以删除PHP中的问号?