.htaccess htaccess-mod rewrite-rewrite规则

.htaccess htaccess-mod rewrite-rewrite规则,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我想在以下方面寻求帮助: 例如,我有一个规则mod_rewrite: RewriteCond %{SCRIPT_FILENAME} !-d RewriteCond %{SCRIPT_FILENAME} !-f RewriteRule ^adverts/([^/]+)/([^/]+)/?$ adverts.php?kat=$1&podkat=$2 [L] 我想将URL www.x.cz/advists/category/subcategory重写为www.x.cz/advists.php

我想在以下方面寻求帮助: 例如,我有一个规则mod_rewrite:

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^adverts/([^/]+)/([^/]+)/?$ adverts.php?kat=$1&podkat=$2 [L]
我想将URL www.x.cz/advists/category/subcategory重写为www.x.cz/advists.php?cat=category&subcat=subcategory

这是可行的,但如果URL是例如www.x.cz/adverts/category/subcategory/xxx(在另一个斜杠之后不久是其他文本字符串),则在这种情况下会出现问题。然后是错误500。我怎样才能解决这个问题?(我希望服务器返回404,或者像引用URL www.x.cz/advists.php?kat=category&podkat=subcategory一样返回404,就像没有另一个字符串一样)


感谢大家的支持。

我相信这应该可以让它匹配,即使它在URL中有额外的部分:

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^adverts/([^/]+)/([^/]+)(/(.*))?$ adverts.php?kat=$1&podkat=$2 [L]