需要简单重写规则的帮助(这应该不容易吗?)

时间:2011-06-10 18:12:40

标签: wordpress mod-rewrite mapping buddypress

我需要的只是将“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页面)。

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

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

以为我会让人们知道我在这个挑战中采取了不同的路线。我没有尝试让我的重写工作,而是改变了WP处理404的方式。

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

set_404();(这允许我与我的主题沟通,某些404应该加载主页模板)

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