首页 > 解决方案 > 如何使用htaccess根据不同的条件进行重定向?

问题描述

我似乎无法弄清楚如何使用我的 htaccess 正确地进行重定向。

我需要像这样重定向一些页面(xxx 表示任何字符串)

  1. website.com/fr=> 好的
  2. website.com/en=> website.com/en/page-1[R 301]
  3. website.com/en/category-1/xxx=> 好的
  4. website.com/en/category-2/xxx=> website.com/en/page-1[R 301]
  5. website.com/en/category-3/xxx=> website.com/en/page-1[R 301](我有多个不同类别的子页面都需要重定向)。

我试图通过查看其他在线示例和文档来使用 Apache 的module_rewrite来解决这个问题。我已经尝试过这样的事情(但没有奏效):

RewriteCond %{REQUEST_URI} ^en/$ [OR]
RewriteCond %{REQUEST_URI} ^en/category-2$ [OR]
RewriteCond %{REQUEST_URI} ^en/category-3$ [OR]
RewriteRule (.*) https://website.com/en/page-1 [L,R=301]

标签: apache.htaccessredirectmod-rewriteurl-rewriting

解决方案


您能否尝试以下操作,按照显示的示例编写。请在将它们放入您的 htaccess 文件后清除您的浏览器缓存。

RewriteEngine ON
RewriteCond %{REQUEST_URI} ^/(en)/?$ [NC]
RewriteRule ^(.*)$ /%1/page-1 [R=301,L]

RewriteCond %{REQUEST_URI} ^/en/(category-[23])/[\w-]+/?$ [NC]
RewriteRule ^(.*)$ /en/page-1 [R=301,L]

推荐阅读