0

我在同一个根目录中有一个运行 cakephp 的站点和一个 wordpress 站点。我有以下问题。首先为 Wordpress 提供请求,这样主页的 url 将通过 wordpress 的索引进行路由。现在我们的 cakephp 代码包含一个控制器列表,用于管理我们网站的一些特殊功能。我们有一个看起来如下的重写规则RewriteCond %{REQUEST_URI} !^/users。这允许 urlwww.example_site.com/users在 wordpress 找不到此页面时访问我们的 cakephp 框架而不是生成 404 错误。

此规则绕过 wordpress 路由,以便可以将请求发送到 cakephp。我们对每个 cakephp 控制器都使用了类似的规则。问题是我们曾经有一个带有用户页面的 wordpress 插件。此用户页面将参数附加到 url,如下所示www.example_site.com/users/some_dudes_username。这些用户页面的一些链接仍然被谷歌或人们的书签索引,所以正在发生的事情是我们编写的重写规则导致这些绕过 wordpress(而不是像以前那样在那里 404ing),而是在那里点击 cakephp 和 404。我正在考虑如何做到这一点,以便我们的任何 cakephp 用户控制器功能都被正确重定向到(只有少数这样的白名单似乎是可行的方法),但是对用户控制器的任何其他请求不会像这样存在www.example_site.com/users/some_dudes_username将重定向到我们的常见问题页面。我有以下似乎有效的白名单代码,但我无法弄清楚如何正确重定向其他所有内容:

RewriteCond %{REQUEST_URI} !^/admin/users
RewriteCond %{REQUEST_URI} !^/users/login
RewriteCond %{REQUEST_URI} !^/users/admin_login
RewriteCond %{REQUEST_URI} !^/users/logout  
RewriteCond %{REQUEST_URI} !^/users/admin_logout
RewriteCond %{REQUEST_URI} !^/users/admin_index

# Then I need a rewrite rule to take everyone else to the FAQ page.

感谢任何可以提供帮助的人。

4

1 回答 1

1

我不确定我是否完全理解您的问题,但听起来您需要RewriteRule这样的:

RewriteRule ^/users/.*$ /URI/to/faq.html [R]

这条规则应该在你之后,RewriteCond因为条件只适用于它们之后的规则。

希望这可以帮助。

于 2013-09-13T11:08:41.717 回答