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

时间:2018-02-06 14:47:04

标签: php .htaccess mod-rewrite url-rewriting

我得到了关注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']什么都不返回。

帮助:/

1 个答案:

答案 0 :(得分:0)

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

我看到你也同时改变了你的帖子。这让人有点困惑。

但无论如何,如果添加.html:

,这似乎对我有用
RewriteEngine On
RewriteRule ^([^-]*)-sub-([^-]*)\.html$ /kat-vergleich/?kat=$1&subkat=$2 [L]
RewriteRule ^([^/]*)\.html$ /kat-vergleich/?kat=$1&%{QUERY_STRING} [L]

检查以确保破折号 - > - 与您的文字和网址相同。