使用 htaccess 将网站默认索引文件从根文件夹更改为子文件夹,网站的其他页面仍应从根文件夹工作

使用 htaccess 将网站默认索引文件从根文件夹更改为子文件夹,网站的其他页面仍应从根文件夹工作

使用 htaccess 如何将 PHP 网站默认主页(即 index.php 文件)从根文件夹(即“html”)更改为子文件夹(称为“子文件夹”),但网站仍应像以前一样工作,即主页将来自“子文件夹”,但其他页面仍将使用相同的旧根“html”文件夹。

笔记 :

  • 网站有 SSL 即(https)

  • 主页浏览器 URL 应始终https://www.mywebsite.com/

  • 根文件夹是“html”。

  • “子文件夹”的目录路径为“html / subfolder”,该文件夹只有一个文件,即“index.php”

  • 因此任何页面 URL(包括主页)都不应发生变化。

  • 无重定向

答案1

根据 Apache 文档https://httpd.apache.org/docs/2.4/mod/mod_dir.html, 我试过

DirectoryIndex 子文件夹/index.php

因此更新后的根文件夹 .htaccess 代码是

<IfModule mod_rewrite.c>

Options +FollowSymLinks

RewriteEngine on
RewriteBase /app/

#--------- 
DirectoryIndex subfolder/index.php

#--------- 

RewriteRule (.*?[A-Z]+.*) ${lc:$1} [R=301,L]

RewriteCond %{HTTP_HOST} !^www\.mywebsite\.com$ [NC]
RewriteCond %{HTTPS}s ^on(s)|off    
RewriteRule ^(.*)$ http%1://www.mywebsite.com/$1 [R=301,QSA,L]    

RewriteRule    ^$    webroot/    [L]
RewriteRule    (.*) webroot/$1    [L]
RewriteRule ^(.*)&(.*)$ $1__-__$2 [N]

相关内容