【问题标题】:Redirecting home to page in subdirectory, mask url将主页重定向到子目录中的页面,掩码 url
【发布时间】:2012-11-26 00:54:47
【问题描述】:

我正在使用 wordpress。

我希望我网站的域根显示另一个页面的内容,同时仍将我的域根显示为 url。

示例:“http://www.mysite.com”显示“http://www.mysite.com/blogs/home”的内容 但用户仍会在地址栏中看到“http://www.mysite.com”。

我已经设法使重定向工作,但它没有屏蔽 URL。它本质上是重定向。

这是我现在的 htaccess 中的内容:

RewriteEngine on
RewriteRule ^\/?$ \/blogs\/home\/ [R,NC]

【问题讨论】:

  • 我不太理解您的问题...您希望http://www.mysite.com 从网址中消失吗?
  • 不,我只希望他们看到“mysite.com”,而不是额外的“/blogs/home/”

标签: regex wordpress .htaccess redirect rewrite


【解决方案1】:

R 选项强制进行外部重定向。试试[NC]吧

【讨论】:

  • 谢谢,但也试过了。尝试了 L、R、NC 的所有组合......因为我真的不知道我在做什么,但我知道他们会做一些事情。
【解决方案2】:

这样怎么样。

  1. 将 index.php 和 .htaccess 文件放在域的根目录中。
  2. 编辑 index.php 以从您放置的任何位置获取“wp-blog-header.php”文件。例如,如果您的 wordpress 文件位于 blogs/home/ 子目录中,则将位于根目录中的 index.php 文件更改为 require('./blogs/home/wp-blog-header.php')。

  3. 忘记重定向问题。

我认为这是最简单的方法。还是我误解了你的问题?

【讨论】:

  • 我不确定。我明天可以试试这个。但为了进一步澄清,我的 wordpress 安装位于 /blogs/ 目录中。 /blogs/home/ 实际上是一个页面 (AKA /blogs/?p=1484)
  • 所以这只是显示我想要的页面,但最终并没有欺骗 URL 以仅显示根域。
【解决方案3】:

这个问题有一个非常简单的解决方案。事实上,wordpress 有一个选项可以完成这项任务。

转到仪表板->设置->阅读->首页显示

选择一个静态页面作为首页。

【讨论】:

  • 您错过了最重要的方面,即 url。大图是,我在 /blogs/ 子目录上安装了一个 wordpress,我真的希望 99% 的页面都在 /blogs/ 目录中......除了一个指定的页面,我想在根目录中.
  • 当您希望它出现在您域的 root 上时,我真的不明白在 /blog/ 上安装 wordpress 的意义。请多解释一下,我也许可以提出一个想法。
  • 我有一个带有博客部分的静态 html 网站,安装在博客上。我已经决定使用 wordpress 为整个网站提供动力。因此,我试图找出一种方法来做到这一点,而无需更改所有旧博客帖子的 URL……不是出于对用户的关注,而是因为当 URL 更改时,所有社交统计数据(FB 喜欢、分享) 返回 0。自从发布此内容后,我决定基本上使用您的方法,但我无法让博客保持相同的 URL,因为它很复杂,但我到了那里......
  • 好的,我想我明白了你想要做什么。您希望所有 wordpress 帖子 URL 后跟 root/blog/ 但您希望您的主页位于 root 上?我说的对吗?
  • 我想你明白了,是的。我遇到的所有问题都与 WP 核心文件仍然驻留在 /blogs/ 目录中这一事实有关,因此这会破坏重定向,因为它已经在尝试从 /blogs/ 重定向。所以我要么必须更改 WP 所在目录的名称,要么将整个目录移动到根目录中。
【解决方案4】:

通过httpd.conf启用mod_rewrite和.htaccess,然后把这段代码放到你.htaccess的DOCUMENT_ROOT目录下:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^$ /blogs/home [NC,P]

PS:确保您在 Apache 配置中启用了 mod_proxy。

【讨论】:

  • 谢谢,但这给了我一个 404。不过,该 URL 仅正确显示了域。
  • 抱歉,我打错了。我有blog/home 而不是blogs/home。现在试试编辑后的答案。
  • 其实,没有。在我疲惫的匆忙中,它显示的是/blogs/而不是/blogs/home/的内容。对不起。我认为 Wordpress 可能正在做一些事情。它提供的 htaccess 是这样的: RewriteBase /blogs/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule 。 /blogs/index.php [L]
  • 好的,请立即检查编辑后的答案。您需要确保在您的 Apache 服务器上启用了 mod_proxy。在此处查看此设置:freedomteam.in
  • 感谢您的帮助。仅此更改就给了我一个 404,所以也许我没有启用 mod_proxy ......但我使用 Dreamhost 并且不知道如何进行更改。我要写支持,看看他们怎么说。
猜你喜欢
  • 1970-01-01
  • 2017-03-08
  • 2018-03-04
  • 1970-01-01
  • 1970-01-01
  • 2021-08-08
  • 1970-01-01
  • 2017-05-01
  • 1970-01-01
相关资源
最近更新 更多