мне нужно, чтобы включить дополнительный замыкающий forwardslash, это /, в моей RewriteRule.htaccess регулярного выражения нужно сделать слэша опционального
То, что я до сих пор
RewriteRule ^([a-zA-Z0-9]+)$ u.php?$1|$2
Который работает отлично , например, http://foo.bar/abcde перенаправляет на http://foo.bar/u.php?abcde и обрабатывает любые параметры запроса, которые могут присутствовать.
Что мне нужно сделать, это взять http://foo.bar/abcde/ (с завершающим forwardslash) и перенаправлять http://foo.bar/u.php?abcde
Так что, если его нет, мне нужно удалить окончательный косую черту от $ 1 в моей RewriteRule. Как мне это сделать? Я новичок в apache и пробовал много разных правил регулярных выражений, но не могу понять.
@Phil: Нет, это невозможно. Единственное, что вы можете сделать, это либо удалить его, либо добавить его ко всем запросам. – Gumbo
На самом деле для того, что я пытаюсь достичь, имеет смысл использовать оба написания, поэтому я собираюсь использовать два правила перезаписи на данный момент, пока я полностью не пойму, что вы предложили с помощью «RewriteCond». – Phil
@Phil: два условия позволяют избежать перенаправления запросов, которые могут быть сопоставлены с существующими каталогами ('-d') или с существующими файлами (' -f'). – Gumbo