RewriteCond / RewriteRule с независимой от регистра и конечной косой чертой? - PullRequest
2 голосов
/ 08 августа 2010

У меня возникли проблемы со следующими двумя строками:

RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+[^/])$ /$1.html [L]

Цель: перенаправление «domain.tld / test /» (только если test.html существует), чтобы оно выводило содержимое «домена».tld / test.html ".

  • Как сделать это без учета регистра:" domain.tld / Test "-> domain.tld / test.html **
  • Какзаставьте его принять косую черту: "domain.tld / test /" тоже должен работать

Спасибо!

** Я не смог заставить работать RewriteMap в нижнем регистре int: tolower, любая помощь приветствуется.

Ответы [ 2 ]

1 голос
/ 11 июня 2013

Используйте [NC] для проверки без учета регистра.

Смотрите здесь проблему с косой чертой: Mode Rewrite; с / без косой черты в конце URL?

0 голосов
/ 08 августа 2010

Попробуйте это:

RewriteRule (.+)/$ $1
RewriteCond %{DOCUMENT_ROOT}/${tolower:$1}.html -f
RewriteRule ^(.+[^/])$ /$1.html [L]

Кроме того RewriteMap можно использовать только в конфигурации сервера или в контексте виртуального хоста, но не в файле .htaccess. Поэтому вам нужно определить карту перезаписи там.

...