繁体   English   中英

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

[英]Local Apache Server mod_rewrite/pretty links issue

我不得不从在实时服务器上进行测试,过渡到在虚拟apache服务器上进行本地测试。 我已经很好地安装了XAMPP,下载并安装了wordpress文件和数据库。 一切看起来都很棒! 我主页的本地版本与实时版本相同。 仅有一个问题:主页是唯一有效的页面。 当我单击链接之一时,即“关于”页面(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]

# END WordPress

在httpd.conf中,更改

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

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

这应该可行,路径是绝对的。

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

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

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

我可以大声疾呼他们这样做是多么愚蠢,以及整个wordpress的软件设计有多糟糕。 但我会为您省去:)。

并加载以下内容:

LoadModule rewrite_module modules/mod_rewrite.so

在httpd.conf中?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM