htaccess mod_rewrite - 覆盖多个参数并读取未覆盖的参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了htaccess mod_rewrite - 覆盖多个参数并读取未覆盖的参数相关的知识,希望对你有一定的参考价值。

我得到了以下htaccess:

RewriteEngine On

RewriteRule ^([^-]*)-sub-([^-]*)\.html$ /kat-vergleich/?kat=$1&subkat=$2 [L]

RewriteRule ^([^/]*)\.html$ /kat-vergleich/?kat=$1 [L]

只有kat的第二个工作正常

example.com/kat-vergleich/bla-1

被覆盖

example.com/kat-vergleich/?kat=bla-1

但第一个在哪里

example.com/kat-vergleich/bla-1-sub-morebla

应该改写成

example.com/kat-vergleich/?kat=bla-1&subkat=morebla

但它重写了它

example.com/kat-vergleich/?kat=bla-1-sub-morebla

我也无法获得非覆盖的参数

example.com/kat-vergleich/bla-1?donttouchit=yey

我无法得到yey

echo $_GET['donttouchit']什么也没有回报。

救命 :/

答案

你的例子部分有效,部分我认为你的例子是错的。因为你在你的第二个规则中匹配.html并说它有效,但它无法工作。

我也看到你在同一时间改变了你的帖子。这让它更加混乱。

但无论如何,如果你添加.html,这似乎对我有用:

RewriteEngine On
RewriteRule ^([^-]*)-sub-([^-]*)\.html$ /kat-vergleich/?kat=$1&subkat=$2 [L]
RewriteRule ^([^/]*)\.html$ /kat-vergleich/?kat=$1&%{QUERY_STRING} [L]

检查以确保破折号 - > - 与文本和URL中的破折号相同。

以上是关于htaccess mod_rewrite - 覆盖多个参数并读取未覆盖的参数的主要内容,如果未能解决你的问题,请参考以下文章

子域 mod_rewrite (htaccess) 到相对目录

将 .htaccess 转换为 nginx (mod_rewrite)

没有 mod_rewrite 的漂亮 URL,没有 .htaccess

使用 .htaccess 和 mod_rewrite 强制 SSL/https

.htaccess 新手问题使用 mod_rewrite

htaccess 2 mod_rewrite