代码之家  ›  专栏  ›  技术社区  ›  dave

站点迁移后Wordpress永久链接不再工作

  •  0
  • dave  · 技术社区  · 9 年前

    站点迁移后,新站点url的主页将加载,但永久链接都会重定向到Apache(我在XAMPP堆栈上)的默认页面:

    Object not found!
    
    The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.
    
    If you think this is a server error, please contact the webmaster.
    
    Error 404
    
    localhost
    Apache/2.4.16 (Win32) OpenSSL/1.0.1p PHP/5.5.28 
    

    我不认为这是wordpress数据库问题。否则,我会得到wordpress的默认页面未找到页面。还有什么原因导致了这种情况?是否有需要修改的.htaccess文件?

    编辑 我使用此脚本进行数据库迁移: https://interconnectit.com/products/search-and-replace-for-wordpress-databases/

    编辑 因此添加了默认的.htaccess https://codex.wordpress.org/htaccess ,并重定向到xampp的主页。因此,这正式意味着wordpressdb/routing中某个位置的永久链接结构已损坏(未正确路由)。我的新站点url是“localhost/somewebsite”,其中“localhost”是我的xamp/localdns设置的默认域名。

    2 回复  |  直到 9 年前
        1
  •  2
  •   ItsOdi    8 年前

    我找到了解决办法。您必须为站点创建虚拟主机。以下是您必须执行的4个步骤:

    1. 转到C:\xamp\apache\conf\extra\httpd-vhosts。conf并创建两个新主机。首先设置一个本地主机,这样当您想调用另一个非虚拟主机的文件夹时:

    #localhost
    <VirtualHost *:80>
      DocumentRoot "C:/XAMPP/htdocs"
      ServerName localhost
    </VirtualHost> 
    #My Website
    <VirtualHost *:80>
      DocumentRoot "C:/XAMPP/htdocs/my-website" #your path to your installation
      ServerName my-website.dev #Change my-website to your wish name/url
      ServerAlias my-website.dev #Change my-website to your wish name/url
    </VirtualHost>   
    1. 转到Windows主机文件并添加以下内容:

    	127.0.0.1		my-website.dev
    1. 转到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

    您必须保存所有文件并重新启动Apache和MySQL服务器

    1. 现在您必须将数据库中的所有Worpress url更改为 http://my-website.dev (这是一个示例!您必须将在xamphost文件中设置的url粘贴到此处)。为了简化这一步骤,您必须从 https://interconnectit.com/products/search-and-replace-for-wordpress-databases/ 。解压缩并粘贴文件夹 Search-Replace-DB-master 在里面 C:/XAMPP/htdocs . 打开浏览器并转到此url: http://localhost/Search-Replace-DB-master/ 。现在在数据库部分输入数据库信息(数据库名称、用户、密码)。转到顶部并输入 replace 输入您的旧url(在我的情况下: https://my-website-old-url.com )之后在现场 with 您的新url(例如: http://my-website.dev ).

    现在点击页面中间的实时运行,所有旧的url都将被新的url替换。

    可能需要将AllowOverride设置为 全部的 在httpd-conf文件中。你还得检查一下 LoadModule rewrite_module模块/mod_rewrite.so 由于重写等原因,httpd conf前面没有#。。。

    最后转到浏览器并输入您的新网址:my-website.dev

    就是这样!希望我能帮助你。

        2
  •  1
  •   cylua2    9 年前

    这里可能会出现一些问题。

    1. 尝试转到您的管理页面,在更改回原始永久链接之前,通过保存默认永久链接来重置永久链接。这是因为在迁移过程中,使用的永久链接似乎会出错,99%的时间需要重置,特别是如果你安装了woo commerce。
    2. 检查服务器上是否启用了mod重写
    3. 确保.htaccess文件是默认文件,以避免其他规则与新环境中的默认规则冲突

    我不认为这也是你的数据库问题。一定要试试,让我们知道它是怎么做的!