我将WordPress安装到子目录:example.com/wp
我使用rewrite rule从我的根URI提供WordPress:example.com
# 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
example.com/welcome.html
它将有一个简单的欢迎消息,应该重定向到我的WordPress的工作版本。我在WordPress中启用了漂亮的URL。例如,在我的welcome.html
页面中,我可以链接到example.com/about
,它会显示我的WordPress的关于页面(正如预期的那样)。
但是,我无法链接到我的WordPress的主页。我为我的WordPress首页使用静态页面(让我们称之为start
)。当我链接到example.com/wp
时,它会在我的WordPress中发出错误404。当我链接到example.com/start
时,它会重定向到我的welcome.html
页面。
听起来很混乱?希望你还在我身边。我真正想要的是:
a)直接访问example.com
的用户应该看到欢迎页面。
b)他们点击欢迎页面上的链接,然后到我的WordPress主页。
c)在WordPress中导航时,不应将它们重定向到欢迎页面。
由于我想在几周后删除欢迎页面,我希望尽可能简单地保留它(没有新的WordPress或类似的首页模板)。
是否有任何解决方案可以将welcome.html
设置为DirectoryIndex
并将所有其他请求重定向到我的WordPress安装包括 WordPress主页?我的主要问题是我无法立即访问WordPress主页(example.com/wp
,example.com/start
或example.com/wp/start
工作),与其他任何静态页面不同( example.com/about
工作正常。)
答案 0 :(得分:1)
我最终使用这个单行插件来禁用规范的URL重定向:
sqlAdapter.Fill(dataTable);
dataGrid.DataContext = dataTable.DefaultView;
此外,我在常规设置面板上重新配置了WordPress URI。现在我可以同时调用我博客的主页并访问所有子页面,而不会被重定向到错误404.
现在我将<?php remove_filter('template_redirect', 'redirect_canonical'); ?>
做.htaccess
,所以我的访问者首先会看到启动页面。欢迎页面包含指向我的DirectoryIndex welcome.html
页面的链接,该页面为WordPress提供服务。博客中的所有链接均有效。
当我的项目启动时,我只需删除index.php
,删除上面的插件代码并重置我的常规设置。