本地主机 Wordpress 永久链接不起作用
localhost Wordpress permalinks not working
我刚刚将 Wordpress 从 live 迁移到本地主机,但无法使用永久链接。
我对此很陌生,我在 MacOS 上使用 Xampp。我想使用像 localhost/side/about 这样的 URL,当我在 wp-admin 上设置它们时,它会提示 404。我一直在研究,但问题是当我将 .htaccess 放入网站的根文件夹时只是使 .php 文件可下载,所以我删除了它(有一个副本)并且效果很好。
现在我只需要永久链接对 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
谢谢
这可能有很多原因,但大多数时候是文件权限或 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
中的网站根目录。
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 ^(.*)/$ / [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
希望对您有所帮助!!!
我刚刚将 Wordpress 从 live 迁移到本地主机,但无法使用永久链接。
我对此很陌生,我在 MacOS 上使用 Xampp。我想使用像 localhost/side/about 这样的 URL,当我在 wp-admin 上设置它们时,它会提示 404。我一直在研究,但问题是当我将 .htaccess 放入网站的根文件夹时只是使 .php 文件可下载,所以我删除了它(有一个副本)并且效果很好。 现在我只需要永久链接对 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
谢谢
这可能有很多原因,但大多数时候是文件权限或 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
中的网站根目录。
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 ^(.*)/$ / [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
希望对您有所帮助!!!