本地Apache服务器mod_rewrite / pretty链接问题

时间:2011-02-12 03:11:26

标签: php mysql apache wordpress

我不得不从在实时服务器上进行测试,到在虚拟Apache服务器上进行本地测试。我已经安装了XAMPP,下载并安装了wordpress文件和数据库。一切看起来都很棒!我的主页的本地版本与实时版本相同。只有一个问题:主页是唯一页面。当我点击其中一个链接,即“about”页面(http:// localhost / wordpress / about /)时,我被重定向到xampp控制面板(http:// localhost / xampp)。

我很感觉这与“漂亮链接”/ mod_rewrite规则的问题有关。我确定我带了.htaccess文件,它包含重写指令。 wordpress数据库具有正确的永久链接结构,httpd.conf文件启用了“RewriteEngine on”和“FollowSymLinks”指令。这里有一些重写问题,虽然我不排除我可能做过的其他愚蠢的事情。谢谢你的帮助!

-E

*这是.htaccess的样子:

# BEGIN WordPress

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

#

4 个答案:

答案 0 :(得分:1)

在httpd.conf中,更改

DocumentRoot "/path/to/your/app/wordpress"

# This should be changed to whatever you set DocumentRoot to.
#
<Directory "/path/to/your/app/wordpress">

这应该有用,路径是绝对的。

答案 1 :(得分:0)

你有没有加载:

LoadModule rewrite_module modules/mod_rewrite.so
在httpd.conf中

答案 2 :(得分:0)

如果您的服务器版本使用域名,即:http://domainname.com等同于http://localhost/wordpress重写规则将是不同的。在这里发布规则。

答案 3 :(得分:0)

问题在于wordpress由于某种原因不相信相对路径。假设wordpress从服务器根运行而不是根目录下的目录(例如/var/www/wordpress将不起作用,但/var/www/将会起作用。

问题在于它们提供的.htaccess文件。它应该重新写入index.php而不是/index.php。在配置中更改该行,它将起作用。

它会尝试实际转到默认文档根目录(在我的情况下是/var/www/index.php,由于我使用的http://localhost/worpress~/projects/worpress的别名,因此它不存在1}})。您可以检查错误日志,它会告诉您它在哪里寻找index.php文件(这将返回404错误)。

我可以继续咆哮他们这样做是多么愚蠢,以及wordpress的整个软件设计有多糟糕。但我会饶恕你:)。