.htaccess正则表达式需要使尾随正斜杠可选

Phi*_*hil 7 regex .htaccess

我需要在我的RewriteRule中包含一个可选的尾随向前闪存,这是一个/

到目前为止我所拥有的是什么

RewriteRule ^([a-zA-Z0-9]+)$ u.php?$1|$2
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,例如http://foo.bar/abcde将重定向到http://foo.bar/u.php?abcde并处理可能存在的任何查询字符串参数.

我需要做的是拿http://foo.bar/abcde/(带尾随向前闪光)并重定向到http://foo.bar/u.php?abcde

所以,如果它存在,我需要在我的RewriteRule中从$ 1中删除最后的正斜杠.我该怎么做呢?我是apache的新手,并尝试了许多不同的正则规则,但无法正确使用它.

Gum*_*mbo 19

只要把/?之前$在你的模式到底:

RewriteRule ^([a-zA-Z0-9]+)/?$ u.php?$1
Run Code Online (Sandbox Code Playgroud)

但我宁愿建议你只允许一个拼写(有或没有尾随斜线)并重定向另一个:

# remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)/$ /$1 [L,R=301]
# add trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .*[^/]$ /$0/ [L,R=301]
Run Code Online (Sandbox Code Playgroud)