【发布时间】:2021-10-18 14:37:27
【问题描述】:
我正在尝试将我们的 wordpress 博客从 blog.ourdomain.co.uk 迁移到 ourdomain.co.uk/journal,但 ourdomain.co.uk/journal 总是显示来自 ourdomain.co.uk/ 的内容。
为了简化迁移,我先在 /journal 中安装一个空白的 wordpress,然后使用 WP 的内置导出/导入功能导入“所有内容”。
起初一切似乎都很好,但是当我访问 ourdomain.co.uk/journal 时,它并没有显示 wordpress 主页,而是显示了我们主站点的主页。即使访问 ourdomain.co.uk/journal/index.php 也会导致这种行为。该站点发出 301 重定向到 ourdomain.co.uk/journal,然后我看到主站点主页而不是 wordpress。
我在父目录 .htaccess 文件中看不到任何会导致这种情况发生的内容。 wordpress .htaccess 文件包含如下代码,其中大部分是由 wordpress 自动创建的,但我添加了 wp-admin 重定向规则。
我可以访问和使用https://www.ourdomain.co.uk/journal/wp-admin/ 没问题。数据库 cxn 没问题。我还可以访问https://www.ourdomain.co.uk/journal/readme.html等静态文件。直接指向帖子的链接也可以正常工作,例如 https://www.ourdomain.co.uk/journal/2021/post-title-here/ - 它只是主页。
即使我将主页设置为静态页面,例如我们在 wordpress 中的 about 页面,这种情况仍然会发生。
我已经定义了 define('WP_HOME', 'https://www.ourdomain.co.uk/journal');并定义('WP_SITEURL', 'https://www.ourdomain.co.uk/journal');在 wp-config.php 中
如果我删除 /journal .htaccess 文件的内容,那么我可以加载 https://www.ourdomain.co.uk/journal ONCE,然后又出错了,因为 wordpress 已将重写代码重写为 .htaccess - 很明显这是 与永久链接有关,但我无法弄清楚到底是什么。
感谢您的帮助。
.htaccess 的内容:
# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /journal/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /journal/index.php [L]
</IfModule>
# END WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^wp-admin\/?$ wp-admin/index.php [NC]
</IfModule>
【问题讨论】:
-
注意 - 删除 wordpress 数据库中的所有标签并重新导入干净的 wordpress 数据库仍然会导致此错误。
-
我找不到您的 WordPress Htaccess 的任何问题。你清除浏览器缓存了吗?
-
还可以尝试将规则的模式从
.更改为.*到RewriteRule .* /journal/index.php [L]我认为这应该可以解决您的问题。 -
在隐身窗口中发生,但会尝试清除缓存。
-
这些东西都没有帮助,但还是谢谢。
标签: php wordpress apache .htaccess redirect