【问题标题】:htaccess URL rewrite rule for everything under a folder文件夹下所有内容的 htaccess URL 重写规则
【发布时间】:2012-03-27 17:31:50
【问题描述】:

我已经看过但找不到任何有用的东西。我有一个我们已经更新的旧网站。他们将所有内容都放在根目录下名为 site 的文件夹下。现在,所有拥有此书签的客户,无论文件夹站点(子文件夹、文件)之后是什么,我都希望将他们重定向到新站点的主页,而不是在我们新的 WordPress 安装中找不到的页面。任何帮助表示赞赏。

旧网址:http://www.oldsite.com/site/.... 到新网址 http://www.newsite.com

我试过没有用

Rewrite Rule ^site/(.*)$ http://www.newsite.com

谢谢。

【问题讨论】:

  • 你,anubhava,这么好(不是在开玩笑,看你的代表),在问这样的问题吗?奇怪的! ;)

标签: .htaccess mod-rewrite


【解决方案1】:

尝试:

RewriteEngine On
RewriteCond %{HTTP_HOST} oldsite.com$ [NC]
RewriteRule ^site/(.*)$ http://www.newsite.com/$1 [R=301,L]

这会将http://www.oldsite.com/site/some-page.html 之类的内容重定向到http://www.newsite.com/some-page.html(URI 的匹配位之后 /site/ 在 301 重定向中得到延续),但如果您想将所有内容重定向到 / site/ 为newsite的索引根目录,将RewriteRule中的target替换为http://www.newsite.com/(去掉$1位)。


编辑:

其实我上面写错了。它实际上是同一个域名。问题应该是旧 URL mysite.com/site.... 这个文件夹下的所有内容都只是重定向到 mysite.com

那么你想要的是:

RewriteEngine On
RewriteRule ^site/(.*)$ /$1 [R=301,L]

或者使用 mod_alias:

RedirectMatch 301 ^/site/(.*)$ /$1 

【讨论】:

  • 我上面居然写错了。它实际上是同一个域名。问题应该阅读旧 URL mysite.com/site.... 这个文件夹下的所有内容都只是重定向到 mysite.com
【解决方案2】:

看起来您只需要这条简单的 1 线规则:

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

RewriteRule ^site/ / [R=301,L,NC]

【讨论】:

    猜你喜欢
    • 2017-07-16
    • 2016-03-30
    • 2012-08-20
    • 1970-01-01
    • 2012-11-22
    • 1970-01-01
    • 2012-02-24
    • 2014-12-20
    • 1970-01-01
    相关资源
    最近更新 更多