【问题标题】:Redirect all URLs in a folder and exclude a URL重定向文件夹中的所有 URL 并排除 URL
【发布时间】:2017-09-21 18:21:41
【问题描述】:

我正在从此 URL/文件夹重定向所有内容(包括正斜杠后的所有 URL):/forums 到这个网址:/blog/ 使用当前正在运行的代码:

RedirectMatch 301 ^/forums https://www.website.com/blog/

但我想排除此网址:

/forums/8/is-dermarolling-an-effective-treatment-for-hair-loss-1953

然后将其重定向到网站的另一个 URL: /use-this-example/

现在它显然也重定向到/blog/

【问题讨论】:

    标签: .htaccess url-redirection


    【解决方案1】:

    首先,您必须从规则中排除这一行 /forums/8/is-dermarolling-an-effective-treatment-for-hair-loss-1953 以及我所做的,将此代码放在您的主目录 .htaccess 并放在您之前代码的每一行前面 # 然后禁用运行这个:

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} !^/forums/8/is-dermarolling-an-effective-treatment-for-hair-loss-1953
    RewriteRule ^forums/(.*)$ blog/$1 [L,R=302]
    

    如果没问题,把302改成301做永久重定向

    更新

    根据您的评论,您只想覆盖每个请求,包括 /8/ 放入以下代码:

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} !^/forums/8/
    RewriteRule ^forums/(.*)$ blog/$1 [L,R=302]
    

    【讨论】:

    • 谢谢,您的代码重定向到 /blog/ 但不排除 URL 并重定向到博客,您的代码一开始不起作用,顺便说一句,您没有删除/forums 的正斜杠,我这样做了: RewriteRule ^forums(.*)$ blog/$1 [L,R=302]
    • 你在8目录还有什么吗?
    • 你可以用这个 RewriteCond %{REQUEST_URI} !^/forums/8/ 替换这一行到目录 8 ,试试然后告诉我
    • 问题是我有几个这样的网址,有些以/8/开头,有些会使用其他数字,例如/3/
    • 好的,确保这个 RewriteCond %{REQUEST_URI} !^/forums/8/is-dermarolling-an-effective-treatment-for-hair-loss-1953 你把 / 放在论坛之前发送
    【解决方案2】:

    感谢 Mohamed 指导我,这是解决方案:

    RewriteCond %{REQUEST_URI} !^/forums/8/
    RewriteRule ^forums blog/$1 [L,R=301]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-05
      • 1970-01-01
      • 2017-08-17
      • 1970-01-01
      • 2017-02-27
      • 2021-07-17
      • 2019-09-23
      相关资源
      最近更新 更多