【发布时间】:2020-07-27 17:06:58
【问题描述】:
我有一个使用默认 .htaccess mod_rewrite 规则的现有 WordPress 网站。
现在我想在站点自己的子目录中使用前端控制器向站点添加一些单独的 PHP 代码。我在 Apache vhost 配置中使用 fallbackresource 指令来执行此操作,并最终得到:
# New PHP front-controller based config
<directory "/srv/www/example.com/public/admin/products">
AllowOverride None
FallbackResource /admin/products/index.php
</directory>
# WordPress config
<directory "/srv/www/example.com/public">
AllowOverride All
</directory>
这几乎有效!对/admin/products 的请求确实正确执行/admin/products/index.php——它输出产品列表。但是,以/admin/products/{prod-id} 形式指向特定产品的链接最终会传递给 WordPress 的 /index.php 脚本,这给了我一个 WordPress 生成的 404。
我可以通过使 WordPress 内容也使用 fallbackresource 指令而不使用 .htaccess 或重写规则来解决此问题,但我更愿意让 WordPress 位保持原样工作。
# WordPress config
<directory "/srv/www/example.com/public">
AllowOverride None
FallbackResource /index.php
</directory>
谁能解释为什么重写规则似乎优先于fallbackresource 指令?
【问题讨论】:
标签: apache apache-config