2017-01-12 7 views
0

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

Таким образом, такой 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] 

И это свалка ошибка

error.log

[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

Возможный дубликат [Htaccess: добавить/удалить конечную косую черту из URL-адреса] (http://stackoverflow.com/questions/21417263/htaccess-add-remove-trailing-slash-from-url) – samrap

+0

Является ли аудиорежим настоящим справочником ? –

+0

Да, это может быть проблемой. – undefined

ответ

1

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

Кроме того, чтобы сделать это в существующих каталогах, вам необходимо отключить DirectorySlash, или сервер добавит косую черту сам по себе. Обратите внимание, что есть some security concern with that.

+0

Я попробую, как только смогу, спасибо! Любая идея, как предотвратить проблему безопасности в списке каталогов? Если нет, я сделаю свое исследование. – undefined

+0

Да отключите автоматическое индексирование каталога и протестируйте его без косой черты, чтобы убедиться, что он работает. Не то, что у меня есть опыт, но и чтение рекомендаций по безопасности, которые должны его покрывать. – SuperDuperApps

+0

Я его покрыл, теперь у меня есть [** еще одна проблема **] (http://stackoverflow.com/questions/41659112/how-do-i-use-mod-rewrite-to-both-redirect-and -rewrite-a-directory), я оставляю его здесь, так как у меня нет возможности связаться с вами. – undefined

 Смежные вопросы

  • Нет связанных вопросов^_^