.HTACCESS - 删除部分 URL

.HTACCESS - 删除部分 URL

我在我的 cms 中使用预定义的 htaccess,如下所示:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?%{QUERY_STRING} [L]

我想更新 URL 以删除 2 个“子目录”:

/en/top/solutions/?id=1/solutions/?id=1
/en/top/about/?othervar=1/about/?othervar=1

这是我迄今为止所做的事情之一:

RewriteRule ^en/top/ /$1 [L,R=301]  

我无法让它工作。谢谢

答案1

意思$1是“使用原始 URL 的第一个捕获部分”。为了捕获原始 URL 的一部分,您需要使用括号将其捕获进去。像这样:

RewriteRule ^/en/top/(.*) /$1 [QSA]

这意味着“获取以 开头的任何内容/en/top/,然后捕获其后的内容并将其放入变量 $1 中。重写为 $1 变量并附加原始查询字符串。

相关内容