0

虽然我有编程背景,但我是 wordpress 的新手。最近,我将一个 wordpress 网站从 justhost 共享服务器移到了 linode vps 服务器(Ubuntu 操作系统)。我做了以下步骤来实现它

  1. 在 vps 上设置 apache2 服务器
  2. 在 vps 上设置虚拟主机
  3. 在 /var/www/ftpadmin/www/ 下创建了一个目录注。创建 ftpadmin 是为了限制 ftp 访问该文件夹下的文件。这样做后,我可以制作静态 html 和 php 网站。

  4. 从各个 wordpress 网站的 justhost 服务器备份数据库和 wp-content 文件夹。

  5. 现在在 vps 上,在上面的指定位置,首先我下载最新版本的 wordpress 并解压缩文件。

  6. 在 mysql 上创建同名数据库,然后将原始数据库导入同一个数据库。

  7. 用原始文件夹中的文件夹替换了新的 wp-content 文件夹。

  8. 我按照https://www.digitalocean.com/community/articles/how-to-set-up-multiple-wordpress-sites-on-a-single-ubuntu-vps上的说明进行操作。

  9. 重新启动apache服务器。现在我可以访问主页了。

  10. 我将 wordpress url 和站点地址 url 的数据库值更正为旧位置的新值,并重新加载了数据库,这也帮助我访问了仪表板和登录页面。

  11. 我创建了一个 .htaccess 文件,如http://ahsan.vimmaniac.com/blog/enabling-wordpress-permalinks-on-ubuntu/ 中所述。

  12. 我还在 /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>
    
  13. 再次重新启动服务 apache。

  14. 最后一点,我使用的是自定义模板,因此我有一个 header.php 和 header-sub.php 文件用于主页和导航。

  15. 现在问题来了。当我单击任何子菜单时,我得到“内部服务器错误”。

  16. 如果我删除 .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>
4

2 回答 2

2

通过将 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>
于 2013-09-17T04:26:08.690 回答
1

在浏览了几个小时并尝试了许多选项后,终于修复了这个错误。

在您的 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

于 2015-01-28T13:34:25.277 回答