Apache mod_rewrite не может удалить косую черту

У меня есть сервер XAMPP Apache, и я добавил файл конфигурации для перезаписи URL с косой чертой и перенаправления на их коллеги без косой черты.

Поэтому URL, как http://example.com/the-audio/ перенаправляется на http://example.com/the-audio, Проблема в том, что это не работает, когда имя каталога состоит только из одного слова.

Так, http://example.com/audio/ не получает слеш Это действительно странно для меня, и при проверке журналов кажется, что в этом случае правило не соответствует.

Вот мое правило (только одно в файле)

.Htaccess

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)\/+$
RewriteRule ^ %1 [R=301,L]

И это дамп ошибки

журнал ошибок

[Wed Jan 11 22:13:32.729812 2017] [rewrite:trace3] [pid 1688:tid 1904] mod_rewrite.c(477): [client ::1:52432] ::1 - - [localhost/sid#ba8340][rid#29a2190/initial] [perdir C:/xampp/htdocs/tecnoedu/] strip per-dir prefix: C:/xampp/htdocs/tecnoedu/audio/ -> audio/
[Wed Jan 11 22:13:32.730312 2017] [rewrite:trace3] [pid 1688:tid 1904] mod_rewrite.c(477): [client ::1:52432] ::1 - - [localhost/sid#ba8340][rid#29a2190/initial] [perdir C:/xampp/htdocs/tecnoedu/] applying pattern '^' to uri 'audio/'
[Wed Jan 11 22:13:32.730312 2017] [rewrite:trace1] [pid 1688:tid 1904] mod_rewrite.c(477): [client ::1:52432] ::1 - - [localhost/sid#ba8340][rid#29a2190/initial] [perdir C:/xampp/htdocs/tecnoedu/] pass through C:/xampp/htdocs/tecnoedu/audio/
[Wed Jan 11 22:13:32.730312 2017] [rewrite:trace1] [pid 1688:tid 1904] mod_rewrite.c(477): [client ::1:52432] ::1 - - [localhost/sid#ba8340][rid#33046a0/subreq] [perdir C:/xampp/htdocs/tecnoedu/] pass through C:/xampp/htdocs/tecnoedu/audio/index.php

Заранее спасибо!

0

Решение

По вашему журналу /audio/ это существующий каталог Таким образом, ваше правило не будет работать, так как первое условие останавливает его выполнение в существующих каталогах. Удалите первое условие, чтобы решить его.

Кроме того, чтобы сделать это в существующих каталогах, вам нужно будет включить DirectorySlash выключен, или сервер добавит косую черту обратно в себя. Обратите внимание, что есть некоторая проблема безопасности с этим.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]