我需要的只是将“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
答案 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标头)