fat free php 在子目录中,路由不起作用

fat free php in subdirectory, routes not working

我正在搭建一个 fatfree 网站,但我在子目录运行

中遇到问题

这是我的 htaccess:

RewriteEngine On
RewriteBase /~site/
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /~site/index.php [L,QSA]

这是我正在使用的路线

GET /*/index=App->show_home

我必须在其余部分之前添加 /*,因为脚本一直将子文件夹作为路径的一部分包含在内。

我想这是可行的,但是一旦我更新了 dns 设置,站点将不再有这些设置,我必须更新它。

有没有我可以应用的设置,可以让这两种情况都起作用?

所需的基本 .htaccess 如下所示:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L,QSA]

请注意:

  • 不需要RewriteBase
  • index.php 与 .htaccess
  • 位于同一文件夹中

但是使用mod_userdir时,需要多一点配置:

  1. 显式设置 RewriteBase(就像您所做的那样):RewriteBase /~myuser/
  2. 在用户目录Apache配置中,确保启用FollowSymlinksAllowOverride All。它们分别允许遵循 ~ link 和处理 .htaccess。

这是 Apache 配置的用户目录示例:

<Directory "/Users/myuser/Sites/">
    Options FollowSymlinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

回答你的最后一个问题:

Is there a setting that I can apply somewhere that would allow both scenarios to work?

答案是:不,只要您从用户目录提供网站服务即可。将您的网站移动到 DocumentRoot,一切都会 运行 顺利。