Php .htaccess在最后一个斜杠后获取值

Php .htaccess在最后一个斜杠后获取值,php,regex,.htaccess,mod-rewrite,Php,Regex,.htaccess,Mod Rewrite,我的代码: RewriteCond %{REQUEST_URI} /category/.*/([^/]+)/? [NC] RewriteCond %{REQUEST_URI} !category\.php [NC] RewriteRule .*/category.php?cat=%1 [L,NC,QSA] 我想从URL中获取最后一个单词作为$\u get['cat'],它是有效的,但当我只在URL中输入一两个斜杠时,它就不起作用了 https://example.com

我的代码:

RewriteCond %{REQUEST_URI}  /category/.*/([^/]+)/?     [NC]
RewriteCond %{REQUEST_URI}  !category\.php      [NC]
RewriteRule  .*/category.php?cat=%1 [L,NC,QSA]
我想从URL中获取最后一个单词作为
$\u get['cat']
,它是有效的,但当我只在URL中输入一两个斜杠时,它就不起作用了

https://example.com/category - don't work
https://example.com/category/motorization - don't work
https://example.com/category/motorization/cars - work
https://example.com/category/motorization/cars/audi -work

您可以使用此规则捕获
$1
/category/
之后的任何内容:

Options -MultiViews
RewriteEngine On

RewriteRule ^/?category(?:/(?:.*/)?([^/]+))?/?$ category.php?cat=$1 [L,NC,QSA]

当然只有最后一个有效,因为你的情况需要四个斜杠。。。你怎么会想到
https://example.com/category当您要求从
/category/
开始整个工作时,
会起作用。。。