在 .htaccess 中重写(URL 带参数)
Rewrite in .htaccess (URL with parameter)
目前我不太了解 URL 在 htaccess 中重写是如何工作的(使用 regEex)。
我想要以下 Url:
example.org/lyrik/kategorien/allgemein-1/
它应该去跟随 Url 以 at 处的数字作为参数:
example.org/index.php?seite=kategorienDetail&kategorienId=1
我尝试了不同的方法,但都不起作用。我最后尝试的是:
RewriteRule ^lyrik/kategorien/allgemein-([0-9]+)$ index.php?seite=kategorienDetail&kategorienId= [L}
这个在整个网站上都出了问题。每个页面都无法访问。
谁能告诉我适用于我的案例的重写规则并解释其中的正则表达式?
我认为您的规则中有一些错别字。试试这个方法。
RewriteRule ^lyrik/kategorien/allgemein-([0-9]+)/?$ index.php?seite=kategorienDetail&kategorienId= [L]
请注意,我在 /
之后使用了 ?
,因此它可以是可选的。你有一个反斜杠。同样在规则的末尾,您有一个大括号而不是方括号。
编辑
根据您的评论。如果 URI 的一部分不是常量,则可以使用它。
RewriteRule ^lyrik/kategorien/([^/]+)-([0-9]+)/?$ index.php?seite=kategorienDetail&kategorienId= [L]
此外,[0-9]+
只是表示它必须是 0-9 之间的数字才能匹配规则,加号表示 1 或更多,基本上表示它不能为空。 *
基本上意味着任何包括空白(0 次或多次出现)。因为你的 link 总是以一个数字结尾,在正则表达式中将它限制为 0-9 确保如果在 URL 中使用任何其他字符它就不会工作。
您可以在此处查看有关正则表达式的更多信息。
请试试这个:
RewriteRule ^lyrik/kategorien/allgemein-(.*?)/$ index.php?seite=kategorienDetail&kategorienId= [QSA,L]
我是用脑子写的,但应该可以。如果没有,请告诉我,但应该:)
编辑:请同时添加 QSA 标志以传递您可能拥有的任何其他查询参数。
亚历克斯
目前我不太了解 URL 在 htaccess 中重写是如何工作的(使用 regEex)。
我想要以下 Url:
example.org/lyrik/kategorien/allgemein-1/
它应该去跟随 Url 以 at 处的数字作为参数:
example.org/index.php?seite=kategorienDetail&kategorienId=1
我尝试了不同的方法,但都不起作用。我最后尝试的是:
RewriteRule ^lyrik/kategorien/allgemein-([0-9]+)$ index.php?seite=kategorienDetail&kategorienId= [L}
这个在整个网站上都出了问题。每个页面都无法访问。
谁能告诉我适用于我的案例的重写规则并解释其中的正则表达式?
我认为您的规则中有一些错别字。试试这个方法。
RewriteRule ^lyrik/kategorien/allgemein-([0-9]+)/?$ index.php?seite=kategorienDetail&kategorienId= [L]
请注意,我在 /
之后使用了 ?
,因此它可以是可选的。你有一个反斜杠。同样在规则的末尾,您有一个大括号而不是方括号。
编辑
根据您的评论。如果 URI 的一部分不是常量,则可以使用它。
RewriteRule ^lyrik/kategorien/([^/]+)-([0-9]+)/?$ index.php?seite=kategorienDetail&kategorienId= [L]
此外,[0-9]+
只是表示它必须是 0-9 之间的数字才能匹配规则,加号表示 1 或更多,基本上表示它不能为空。 *
基本上意味着任何包括空白(0 次或多次出现)。因为你的 link 总是以一个数字结尾,在正则表达式中将它限制为 0-9 确保如果在 URL 中使用任何其他字符它就不会工作。
您可以在此处查看有关正则表达式的更多信息。
请试试这个:
RewriteRule ^lyrik/kategorien/allgemein-(.*?)/$ index.php?seite=kategorienDetail&kategorienId= [QSA,L]
我是用脑子写的,但应该可以。如果没有,请告诉我,但应该:)
编辑:请同时添加 QSA 标志以传递您可能拥有的任何其他查询参数。
亚历克斯