0

我需要的只是重写,将“domainXYZ.com/anyphrase”更改为“domainXYZ.com”

这是我正在使用的:

RewriteCond %{HTTP_HOST} ^domainXYZ\.com
RewriteCond %{SCRIPT_FILENAME} !wp-admin
RewriteCond %{SCRIPT_FILENAME} !activity
RewriteCond %{SCRIPT_FILENAME} !members
RewriteCond %{SCRIPT_FILENAME} !groups
RewriteRule ^([A-Za-z0-9-]+)/?$ index.php [L]

注意:我将以上内容添加到我的 .htaccess 顶部(在 WP 根目录中)。我在 domainXYZ.com 上运行 WP 3.1.3 多站点(子域)、WP MU 域映射插件和 buddypress。domainXYZ.com 是映射的域名,而不是实际的子域。

我假设我的重写规则将加载 domainXYZ.com/index.php,这将加载 wordpress 站点的主页。但是,我的 buddypress 皮肤中显示“找不到页面”响应(不是完整的错误 404 页面)。

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

4

2 回答 2

0

只是想我会让人们知道我在这个挑战中走了一条不同的路。我没有试图让我的重写工作,而是改变了 WP 处理 404 的方式。

不幸的是,我不得不更改一些 WP 核心文件,但我更改的功能是:

set_404();(这让我可以与我的主题交流,某些 404 应该加载主页模板)

status_header();(当输入特定类型的不存在的 url 时停止发送 404 标头)

于 2011-06-11T19:19:32.443 回答
0

如果您在 .htaccess 中添加规则,我相信您需要使用 RewriteBase。

这应该工作

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

在主 httpd.conf 文件中,在文档根目录的目录块中,在底部,您可以添加以下内容(而不是 .htaccess):

<Directory /my/document/root>
    # Other stuff here
    # ...

    # make this last:
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</Directory>
于 2011-06-10T18:31:52.580 回答