Mod rewrite 子目录中的无脂php,路由不工作

Mod rewrite 子目录中的无脂php,路由不工作,mod-rewrite,apache2,fat-free-framework,Mod Rewrite,Apache2,Fat Free Framework,我正在准备一个无脂肪的站点,但在子目录中运行时遇到了问题 这是我的htaccess: RewriteEngine On RewriteBase /~site/ RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* /~site/index.php [L,QSA] 这就是我使用的路线 GET /*/inde

我正在准备一个无脂肪的站点,但在子目录中运行时遇到了问题

这是我的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]
注意:

  • 不需要重写基
  • index.php与.htaccess位于同一文件夹中
但当使用mod_userdir时,需要更多的配置:

  • 显式设置RewriteBase(就像您所做的那样):
    RewriteBase/~myuser/
  • 在用户目录Apache配置中,确保启用了
    FollowSymlinks
    AllowOverride All
    。它们分别允许遵循
    ~
    链接和处理.htaccess
  • 下面是一个用户目录Apache配置示例:

    <Directory "/Users/myuser/Sites/">
        Options FollowSymlinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
    
    
    选项如下符号链接
    允许超越所有
    命令允许,拒绝
    通融
    
    要回答您的最后一个问题:

    是否有一个设置,我可以应用到某个地方,使这两种情况都可以工作

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