Я должен включать дополнительное запаздывание forwardslash, это / в моем RewriteRule
Что я имею, до сих пор
RewriteRule ^([a-zA-Z0-9]+)$ u.php?$1|$2
Который хорошо работает, например, http://foo.bar/abcde перенаправит на http://foo.bar/u.php?abcde и обрабатывает любые querystring параметры, которые могут присутствовать.
То, что я должен сделать, является взятием http://foo.bar/abcde/ (с запаздыванием forwardslash) и перенаправление на http://foo.bar/u.php?abcde
Так, если его подарок, я должен удалить заключительную наклонную черту вправо из 1$ в моем RewriteRule. Как я делаю это? Я плохо знаком с апачем и попробовал много различных правил regex, но не могу разобраться в нем.
Просто поставьте /?
перед $
в конце вашего шаблона:
RewriteRule ^([a-zA-Z0-9]+)/?$ u.php?$1
Но я бы предлагаю вам разрешить только одно написание (с косой чертой или без него) и перенаправить другое:
# remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)/$ /$1 [L,R=301]
# add trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .*[^/]$ /$0/ [L,R=301]