【问题标题】:fat free php in subdirectory, routes not working子目录中的无脂肪 php,路由不起作用
【发布时间】:2019-05-03 23:19:55
【问题描述】:

我正在构建一个无脂肪网站,但它在子目录中运行时遇到问题

这是我的 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 设置,网站将不再有这些设置,我必须更新它。

是否有我可以在某处应用的设置可以让这两种情况都起作用?

【问题讨论】:

    标签: mod-rewrite apache2 fat-free-framework


    【解决方案1】:

    所需的基本 .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被启用。它们分别允许关注~ 链接和处理.htaccess。

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

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

    回答你的最后一个问题:

    是否有我可以在某处应用的设置可以让这两种情况都起作用?

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

    【讨论】:

      猜你喜欢
      • 2014-02-06
      • 2019-12-28
      • 2015-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多