WordPress 永久链接不起作用
Posted
技术标签:
【中文标题】WordPress 永久链接不起作用【英文标题】:Wordpress Permalinks not working 【发布时间】:2011-05-18 12:01:48 【问题描述】:我将我的网站从 slichost 移至 Amazon ec2。搬家后,我为 wordpress 做了必要的设置。我的 wordpress 第一页工作正常,但永久链接不起作用。 谁能告诉我要使永久链接正常工作需要进行哪些更改。
谢谢
【问题讨论】:
如果我是对的,问题是什么,他们仍然指向旧位置。是你的问题吗? 您能描述一下“不工作”是什么意思吗?您能给我们举一个不工作的永久链接的例子,并详细说明当您尝试使用它时会发生什么? 直截了当,没有更多信息,您是否检查过您的公共根目录中是否有.htaccess
,并启用了 mod_rewrite
和适当的规则?
@Atul 你有正确的答案吗?如果对您的原始问题有任何答案,您能否将其标记为正确?
请查看这个答案:***.com/questions/19156711/…
【参考方案1】:
检查您的 apache 配置并确认您在存储 Wordpress 安装的目录中启用了以下设置(可能您将有更多特定目录的配置选项,但这些是 Wordpress 精美永久链接所需的最低要求):
<Directory var/www/>
Options FollowSymLinks
AllowOverride All
</Directory>
【讨论】:
我在 Apache httpd 版本 2.2.23 上的 FollowSymLinks 上收到无效命令错误 我发现这个教程视频更好地解释了上述修复:youtube.com/watch?v=_bo9dl-yxDA 我改变了这个 AllowOverride All 并且它起作用了。谢谢。【参考方案2】:在迁移到新的 linux 主机并安装新的 wordpress 后,我们必须进行以下所有更改以启用漂亮的永久链接。
-
在正确的文件夹中创建 .htaccess,其中包含 Krige 建议的代码。
按照 Mike Lynn 的建议,在 apache 上启用 mod_rewrite,然后重新启动服务器。
按照 Cninroh 的建议,将 apache 配置更改为 FollowSymLinks 和 AllowOverride All for /var/www/。对我们来说 /etc/apache2/sites-enabled/000-default 是我们必须编辑的文件。
【讨论】:
将 AllowOverride 从 None 更改为 All 使永久链接有效!【参考方案3】:我在让永久链接(默认除外)在 Mac OSX 上工作时遇到问题,以下内容非常有用。默认情况下,Mac 似乎没有 .htaccess 准备就绪,Apache 将忽略该文件,直到某些文件(在下面的链接中指定)被修改:
http://wordpress.org/support/topic/getting-pretty-permalinks-working-on-a-mac-105-server
http://clagnut.com/blog/350/
希望有帮助!
【讨论】:
【参考方案4】:在您的 wordpress 目录中创建一个.htaccess
文件,并将以下代码放入其中:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Source
【讨论】:
【参考方案5】:我能够通过以下方式解决此问题:
为我的网站登录 wp-admin 更改设置 |不同事物的永久链接选项 保存更改 更改设置 |将永久链接选项恢复为原始值 保存更改这似乎重新启用了最初不起作用的永久链接。
【讨论】:
【参考方案6】:尝试在永久链接路径之前添加 index.php/。
【讨论】:
【参考方案7】:虽然检查 apache 配置是必不可少的并且可能是第一步,但您还需要确保 apache 启用了 mod_rewrite 模块...根据您使用的来自 Amazon 的 AMI,您需要:
安装 apache 并有条件地启用 mod_rewrite。
a2enmod 重写
重启服务器
啊
【讨论】:
【参考方案8】:当您设置非默认的永久链接选项时,以下代码已经发布在 .htaccess 文件中。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /callerdb/
RewriteRule ^index\.php$ - [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule . /callerdb/index.php [L]
</IfModule>
# END WordPress
但这并没有帮助,正如你已经知道的那样。
因此,当您 set rewrite_module 时,这将起作用,这可以通过转到“修复权限”(如果您的 cpanel 中可用)来完成,或者您可以联系您的主机。
【讨论】:
以上是关于WordPress 永久链接不起作用的主要内容,如果未能解决你的问题,请参考以下文章
在 Wordpress 上启用漂亮的永久链接 - apache 配置不起作用
Wordpress Postname 永久链接在 localhost (xampp) 上不起作用