Wordpress 子页面在恢复后抛出 404
Posted
技术标签:
【中文标题】Wordpress 子页面在恢复后抛出 404【英文标题】:Wordpress subpages throwing 404 after restoring 【发布时间】:2013-09-20 04:06:59 【问题描述】:虽然我有编程背景,但我是 wordpress 的新手。最近我将一个 wordpress 网站从 justhost 共享服务器移到了一个 linode vps 服务器(Ubuntu 操作系统)。我做了以下步骤来实现它
-
在 vps 上设置 apache2 服务器
在 vps 上设置虚拟主机
在 /var/www/ftpadmin/www/ 下创建了一个目录 笔记。创建 ftpadmin 是为了限制 ftp 访问该文件夹下的文件。这样做后,我可以制作静态 html 和 php 网站。
从各个 wordpress 网站的 justhost 服务器备份数据库和 wp-content 文件夹。
现在在 vps 上,在上面的指定位置,首先我下载最新版本的 wordpress 并解压缩文件。
在mysql上创建同名数据库,然后将原文件导入同一个数据库。
将新的 wp-content 文件夹替换为原始文件夹中的文件夹。
我按照https://www.digitalocean.com/community/articles/how-to-set-up-multiple-wordpress-sites-on-a-single-ubuntu-vps 上的说明进行操作。
重新启动 apache 服务器。现在我可以访问主页了。
我将 wordpress url 和站点地址 url 的数据库值更正为旧位置的新值,并重新加载了数据库,这也有助于我访问仪表板和登录页面。
我创建了一个 .htaccess 文件,如http://ahsan.vimmaniac.com/blog/enabling-wordpress-permalinks-on-ubuntu/.中所述
我还将 /etc/apache2/sites-available/ 中两个部分下的“AllowOveride”更改为
<Directory />
Options FollowSymLinks
AllowOverride all
</Directory>
<Directory /var/www/ftpadmin/www/domainname>
RewriteEngine On
Options Indexes FollowSymLinks MultiViews
AllowOverride FileInfo
Order allow,deny
allow from all
</Directory>
再次重启服务 apache。
最后一点,我使用的是自定义模板,因此我有一个 header.php 和 header-sub.php 文件用于主页和导航。
现在问题来了。当我点击任何子菜单时,我会收到“内部服务器错误”。
如果我删除 .htaccess 并重新加载 apache 服务器。现在点击子菜单时出现 404 错误。
非常感谢任何帮助?我查看了各个站点以整理这些许多步骤并执行。我不知道我应该做些什么来纠正这种情况。但是当我去仪表板->所有页面时,我可以找到那里存在的所有页面的内容。
提前致谢 法亚兹
编辑
从评论中添加了.htaccess
文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/ (wordpress replaced with my domainname, bottom also)
RewriteRule ^index\.php$ - [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
【问题讨论】:
发布您的 htaccess 文件我通过替换解决了上述问题 RewriteBase /wordpress/ 为“RewriteBase /” 和 RewriteRule ./wordpress/index.php [L 为“RewriteRule ./index.php [L]”。 在 .htaccess 文件中。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule . /index.php [L]
</IfModule>
【讨论】:
【参考方案2】:在浏览了几个小时并尝试了许多选项后,终于修复了这个错误。
在您的 Apache httpd.conf 文件的这个块中,(位于我的 CentOS 实例中 $ sudo vi /etc/httpd/conf/httpd.conf)
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
将 AllowOverride None 更改为 AllowOverride All。
源:https://wordpress.org/support/topic/secondary-or-child-pages-returning-a-404-error-after-wp-34-update#post-3830892
【讨论】:
以上是关于Wordpress 子页面在恢复后抛出 404的主要内容,如果未能解决你的问题,请参考以下文章