gpt4 book ai didi

php - 无法访问子文件夹 | PHP框架

转载 作者:搜寻专家 更新时间:2023-10-31 21:22:24 24 4
gpt4 key购买 nike

我正在编辑一个网站,该网站是使用 PHP 上的某些框架制作的,但未显示是哪个。所有公共(public)文件,如 CSS、JS 都在公共(public)目录中。我想在域内上传一个单独的站点,例如 www.domain.com/newsite 我已经创建了文件夹新站点,但我无法访问它,它会转到 404 页面未找到。

root的Htacess如下

RewriteEngine on



RewriteRule ^(?!sitemap\.xml$).(.*)\.xml$ [R=404,L]
RewriteRule ^(?!robots\.txt$).(.*)\.txt$ [R=404,L]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]

<ifModule mod_headers.c>
Header set Access-Control-Allow-Origin: *
</ifModule>

我在公共(public)目录 newsite 中创建了另一个文件夹,现在仍然可以打开它。

公共(public)目录中的 Htacess 是

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l



RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

关于如何直接访问文件夹的任何建议

最佳答案

当您的新文件夹包含在请求中时,您只需要告诉根 htaccess 不要重写到 public 目录。目前,你有这部分代码

RewriteRule    ^$    public/    [L]
RewriteRule (.*) public/$1 [L]

这意味着:将根页面/重写到public文件夹(第一条规则)并将everything重写到public文件夹(第二条规则)。顺便请注意,您的第一条规则将毫无用处。

无论如何,你需要添加一个条件来达到你的目标

RewriteCond %{REQUEST_URI} !^/newsite
RewriteRule ^(.*)$ public/$1 [L]

这意味着:重写所有除了 newsite 文件夹到public 文件夹。

最后,您的根 htaccess 应该如下所示

RewriteEngine on
RewriteBase /

RewriteRule ^(?!sitemap\.xml$).(.*)\.xml$ [R=404,L]
RewriteRule ^(?!robots\.txt$).(.*)\.txt$ [R=404,L]

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{REQUEST_URI} !^/newsite
RewriteRule ^(.*)$ public/$1 [L]

<ifModule mod_headers.c>
Header set Access-Control-Allow-Origin: *
</ifModule>

注意 RewriteBase 的存在,这始终是一个好习惯,尤其是在处理由某些规则创建的虚拟目录时。另请注意,您的两个 xml 规则可以以更聪明/更清晰的方式重写

关于php - 无法访问子文件夹 | PHP框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43952983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com