首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >htaccess将根目录重定向到子目录,但允许根中的index.php和查询字符串起作用。

htaccess将根目录重定向到子目录,但允许根中的index.php和查询字符串起作用。
EN

Stack Overflow用户
提问于 2013-12-16 19:19:02
回答 1查看 889关注 0票数 1

我有一个类似的问题,并得到了回答。然而,答案引出了另一个概念,现在我有了以下问题。(用户"anubhava“能够回答原来的问题。)

让我解释一下,我们的情况是:

我们正在使用Joomla推出一个新的网站,然而,我们希望所有旧网站的链接继续发挥作用(因为我们在旧网站上有大量的WordPress内容)。因此,使用htaccess,我们可以将所有对主域名的请求重定向到一个子目录,其中包含新的Joomla网站。例如,由于htaccess代码,对www.example.com的请求被重定向到www.example.com/PORTALsite,这正是我们想要的。

此外,该代码还允许对旧WordPress网站主页的请求保持功能(我们正在替换的旧网站)。例如,www.example.com/index.php仍将运行并加载旧的WordPress站点,这正是我们所希望的。

只有当请求仅针对域名(www.example.com)时,它才会重定向到新的Joomla网站的主页(位于www.example.com/PORTALsite/),但如果请求是针对旧网站的主页(位于www.example.com/index.php),则允许这样做并加载旧的WordPress网站。

以下是htaccess代码:

代码语言:javascript
复制
RewriteEngine on
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+[\s?]
RewriteRule ^$ /PORTALsite [R=301,L]

不过,我现在的问题是这个:有许多绑定链接,其中省略了旧WordPress网站的index.php页面,只附加了一个查询字符串(通过WordPress在旧网站上显示页面名称)。但是,因为上面的代码认为这只是对主域名的调用(因为它“忽略”查询字符串),所以它也将其重定向到新的Joomla网站。我们不希望这发生!有什么帮助吗?

问题的例子,现在是

  1. (没有问题)对主域名的请求被成功地重定向到新的Jooma网站,因此www.example.com将重定向到www.example.com/PORTALsite,这是我们想要的,也是应该的。
  2. (没问题) www.example.com/index.php成功地加载了旧WordPress网站的主页,这是我们想要的,也是应该的。
  3. 然而,的问题是:没有文件名但包含查询字符串的绑定链接(如www.example.com/?page_id=56 )也被重定向到新的Joomla网站(例如,www.example.com/PORTALsite/?__id=56)。 我们希望www.example.com/?page_id=56重定向到www.example.com/index.php?page_id=56,并从旧的WordPress站点加载内容。如何在上面的htaccess代码基础上实现这一点?

提前感谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-17 10:05:54

代码语言:javascript
复制
RewriteEngine on
# Match requests for /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+[\s?]
# Don't match requests for page_id=n
RewriteCond %{QUERY_STRING} !page_id=[0-9]+
# Redirect to /PORTALsite
RewriteRule ^$ /PORTALsite [R=301,L]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20619053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档