gpt4 book ai didi

php - .htaccess 的公共(public)目录

转载 作者:行者123 更新时间:2023-12-03 06:33:36 25 4
gpt4 key购买 nike

我在index.php中有一个调度程序函数,因此URL如下:

/blog/show 转到

/index.php/blog/show

<IfModule mod_rewrite.c>    RewriteEngine On    RewriteCond %{REQUEST_FILENAME} !-d    RewriteCond %{REQUEST_FILENAME} !-f    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]</IfModule>

如何修改此设置,以便可以将所有静态文件转储到公共(public)目录中,但在 URL 中不使用 public 的情况下访问它们。

例如/docs/lolcats.pdf 访问

驱动器上的/public/docs/lolcats.pdf

我试过了

RewriteCond %{REQUEST_FILENAME} !fRewriteRule ^(.*)$ public/$1 [QSA,L]

最佳答案

试试这个:

RewriteCond %{DOCUMENT_ROOT}public%{REQUEST_URI} -f
RewriteRule !^public/ public%{REQUEST_URI} [L]

如果你想在根目录下的子目录中使用它:

RewriteCond %{REQUEST_URI} ^/subdir(/.*)
RewriteCond %{DOCUMENT_ROOT}subdir/public%1 -f
RewriteRule !^public/ public%1 [L]

我找到了另一个没有显式命名子目录的解决方案:

RewriteRule ^public/ - [L]
RewriteCond public/$0 -F
RewriteRule .* public/$0 [L]

重要的更改是使用 -F 而不是 -f,因为前者会触发子请求。

关于php - .htaccess 的公共(public)目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/439784/

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