【问题标题】:localhost Wordpress permalinks not working本地主机 Wordpress 永久链接不起作用
【发布时间】:2019-05-24 03:35:54
【问题描述】:

我刚刚将 Wordpress 从 live 迁移到 localhost,无法使用永久链接。

我对此很陌生,我正在使用 Xampp for MacOS。我想使用 localhost/side/about 之类的 URL,当我在 wp-admin 上设置这些 URL 时,它会提示 404。我一直在研究,但问题是当我将 .htaccess 放在站点的根文件夹中时只是使 .php 文件可下载,所以我删除了它(有一个 c 的副本),它工作得很好。 现在我只需要永久链接对 SEO 友好。

从实时站点下载的 .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
# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php70” package as the default “PHP” programming 
language.
<IfModule mime_module>
AddType application/x-httpd-ea-php70 .php .php7 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit

我的本​​地站点位于 /htdocs/side

谢谢

【问题讨论】:

  • 转到“设置”>“永久链接”并单击“保存”几次以确保 WordPress 重建其永久链接缓存。
  • 这对我不起作用。 Wordpress 说:你现在应该更新你的 .htaccess。问题是我没有 .htaccess。
  • 似乎 WordPress 无法更新您的 .htaccess 文件。检查您的权限,如下面的 Tauseef 所说。

标签: php wordpress localhost permalinks


【解决方案1】:

这可能有很多原因,但大多数时候是文件权限或 Apache mod_rewrite 模块。由于这两个原因,您可以通过以下方式解决此问题:

文件权限问题: 您需要为您的 Wordpress 文件夹授予一些权限,为此在终端中使用以下命令,然后检查 /etc/apache2/httpd.conf 中的覆盖规则,然后重新启动您的 Apache 服务器并检查它是否有效

sudo chown _www:_www /YOUR_WORDPRESS_DIRECTORY_ADDRESS
sudo chmod 0775 /YOUR_WORDPRESS_DIRECTORY_ADDRESS
sudo dseditgroup -o edit -a username -t user _www

在您的情况下,/YOUR_WORDPRESS_DIRECTORY_ADDRESS 将是 /htdocs/side,并将 username 更改为您的用户名。

在此之后,确保将AllowOverride 设置为All 以用于/etc/apache2/httpd.conf 中的Web 根目录。

Apache mod_rewrite 问题: 要检查 mod_rewrite 模块是否已启用,请查看 /etc/apache2/httpd.conf 并确保此行:

LoadModule rewrite_module libexec/apache2/mod_rewrite.so

未注释,如果没有,则取消注释并重新启动 Apache 服务器。

也将其放入您的 .htaccess 文件中:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteRule ^(.*)/$ /$1 [L,R=301]

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

希望对你有帮助!!!

【讨论】:

  • 嗨,我没有 .htaccess,所以我认为需要创建友好的 URL。我忘记提及的另一件事是,过去我在文件权限方面遇到了很多问题,因此这可能是个问题。
  • 如何创建 .htaccess?还是不需要?
  • @ArnauJiménez 是的,权限在 linux 和 macOS 上是一个很大的问题,您是否尝试过使用上述命令?
  • @ArnauJiménez .htaccess 是必需的,您只需打开文本编辑器并创建一个名为 .htaccess 的文件并将其保存在根文件夹中,然后您就可以将代码放在那里。这很简单。
  • @ArnauJiménez 我已将 .htaccess 文件内容添加到答案中
猜你喜欢
  • 1970-01-01
  • 2011-05-18
  • 2015-07-03
  • 1970-01-01
  • 2013-08-03
  • 2018-04-17
相关资源
最近更新 更多