将嵌套文件夹(子子文件夹)重定向到自己的 index.php

Posted

技术标签:

【中文标题】将嵌套文件夹(子子文件夹)重定向到自己的 index.php【英文标题】:redirect nested folder (sub sub folder) to own index.php 【发布时间】:2019-04-29 17:06:30 【问题描述】:

如何从example.com/projects/login 重定向到example.com/projects/login/index.php

我的 .htaccess:

#Force www:
RewriteEngine on
RewriteCond %HTTP_HOST ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]

#Removing .PHP Extension
RewriteEngine On
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

# Set XSS Protection header
<IfModule mod_headers.c>
Header set X-XSS-Protection "1; mode=block"
</IfModule>

【问题讨论】:

【参考方案1】:

这不需要任何重写规则。只需在 .htaccess 顶部使用 DirectoryIndex 指令即可:

DirectoryIndex index.php
RewriteEngine on

#Force www:
RewriteCond %HTTP_HOST !^www\. [NC]
RewriteRule ^ http://www.%HTTP_HOST%REQUEST_URI [L,R=301,NE]

#Removing .PHP Extension
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

# Set XSS Protection header
<IfModule mod_headers.c>
Header set X-XSS-Protection "1; mode=block"
</IfModule>

【讨论】:

我正在使用共享主机 cpanel,htaccess 文件在 root 中,example.com/projects/login/index.php 链接正常 每个链接末尾都有 /,我也得到 404。 是的项目是一个新文件夹,登录是一个 php 登录系统,在登录文件夹内我可能有 php 文件,如索引、配置文件、rest 密码和... 谢谢,我的问题是什么? 添加.php 而不检查该.php 文件的存在是问题所在。 RewriteCond %REQUEST_FILENAME.php -f 会检查。

以上是关于将嵌套文件夹(子子文件夹)重定向到自己的 index.php的主要内容,如果未能解决你的问题,请参考以下文章

将 mongo 查询的输出重定向到 csv 文件

linux怎么重定向到文件和屏幕

将标准输出重定向到文件[重复]

Spotify API 将 URL 重定向到本地文件系统?

将标准错误重定向到c中的文件

在linux下读文件a再重新重定向到该文件,会将文件清空是为啥?