MOD_REWRITE已启用,但固定链接显示index.php

时间:2010-12-13 作者:bhamrick

我刚刚在我的LAMP堆栈上安装了一个朋友博客,它启用了mod\\u重写(我在同一台服务器上安装Drupal时使用它来清理URL)。出于某种原因,WordPress(3.0.3)没有意识到mod\\u rewrite已启用。在Permalinks菜单中,它显示PATHINFO Permalinks的选项(url字符串前面有index.php)。

我现在的解决办法是只使用自定义结构字段,输入我想要的更少的索引。php部分WordPress似乎有意插入,这是可行的,但我想得到一个实际的修复。

这是3.0.3异常吗?我没有太多的时间来研究我的服务器配置,但任何指导都将不胜感激。

2 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

$\\u SERVER[\'SERVER\\u SOFTWARE\']的输出是WebServerX

这看起来像是你的问题-看看这一行wp-includes/vars.php:

/**
 * Whether the server software is Apache or something else
 * @global bool $is_apache
 */
$is_apache = (strpos($_SERVER[\'SERVER_SOFTWARE\'], \'Apache\') !== false || strpos($_SERVER[\'SERVER_SOFTWARE\'], \'LiteSpeed\') !== false);
我认为您需要在插件或主题中手动重写此变量functions.php:

global $is_apache;
$is_apache = true;
John P Bloch的道具:

唯一一次它会自动添加“索引”。php到permalink的值是if$is\\u apache返回false。

SO网友:heintore

或者,您可以向函数中添加以下代码行。php文件:

add_filter( \'got_rewrite\', \'__return_true\', 999 );
我们这样做是为了让WordPress能够很好地与nginx配合使用。

结束

相关推荐