Как отключить перенаправление 301, которое добавляет косую черту к имени каталога в Apache
Apache 2.2.20 автоматически перенаправляет все запросы, которые указывают на каталоги, и не имеет косой черты на тот же URL с косой чертой, как показано ниже:
GET /some/path/to/dir HTTP/1.1
Host: www.some.org
...
301 Moved permanently
Location: http://www.some.org/some/path/to/dir/
Во всех случаях это нормальное поведение, но мне нужно отключить эту функцию для одной специальной папки (не для всех), и могу 'не могу найти, где я могу это сделать.
В поискахПерепишите» Правила ничего не говорит - только директива LoadModule mod_rewrite.so. Также нет файлов .htaccess на сервере каталогов в дереве каталогов. Есть ли другие директивы, которые делают вещи?
UPD1 Я пытаюсь настроить SVN через HTTP с помощью следующей конфигурации:
LoadModule dav_svn_module /opt/libexec/mod_dav_svn.so
LoadModule authz_svn_module /opt/libexec/mod_authz_svn.so
NameVirtualHost *:8000
ServerAdmin [email protected]
ServerName some.host.org
DocumentRoot /path/to/wwwroot
DAVLockDB /opt/var/lock/davlock/svndavlockdb
Options FollowSymLinks Indexes
# #AllowOverride None
Order allow,deny
Allow from all
Options FollowSymLinks Indexes
AllowOverride None
Order allow,deny
Allow from all
CustomLog /path/to/wwwroot/log/access_log.txt combined
ErrorLog /path/to/wwwroot/log/error_log.txt
#AllowOverride None
#RewriteEngine Off
#RewriteOptions AllowNoSlash
DirectorySlash Off
DAV svn
SVNParentPath /path/to/wwwroot/svn
# SVNListParentPath on
AuthType Basic
AuthName "Subversion Repository"
AuthBasicAuthoritative Off
AuthUserFile /path/to/wwwroot/svn/.htauthfile
Require valid-user
UPD2 Кажется, чтоDirectorySlash Off " директива работает только дляsome.host.org/svn» и не работает дляsome.host.org/svn/repo1 ","some.host.org/svn/repo2" etc - дочерние каталоги не наследуют эту опцию.
UPD3 Я пытаюсь добавить следующие строки в конфиг, но результат тот же - "DirectorySlash Off " работать только для/ СВН» и не для детей.
DirectorySlash Off
РЕШИТЬ Задача решена. Это моя ошибка - я поместил корень репозитория SVN в папку DocumentRoot, чтобы apache и web_dav могли 'не понимаю, кто должен обрабатывать запрос. Это относится как минимум к клиенту TortoiseSVN.
Комментарии разработчиков SVN:
Это означает, что ваш httpd.conf неправильно настроен. Обычно эта ошибка возникает, когда вымы определили виртуальную Subversion "место нахождения" существовать в двух разных областях одновременно.
Например, если вывы экспортировали репозиторий как, но вымы также установили для вашего DocumentRoot / www, тогда выв беде. Когда приходит запрос на / www / foo / bar, apache не делаетНе знаю, найти ли в вашем DocumentRoot настоящий файл с именем / foo / bar или попросить mod_dav_svn извлечь файл / bar из репозитория / www / foo. Обычно выигрывает первый случай, и, следовательно,Переехал навсегда" ошибка.
Решение состоит в том, чтобы убедиться, что ваш репозиторий не перекрывается и не находится в каких-либо областях, уже экспортированных как обычные веб-ресурсы.
Это'Также возможно, что у вас есть объект в корне сети, который имеет то же имя, что и URL вашего хранилища. Например, представьте, что ваш веб-серверКорнем документа является / var / www, а хранилище Subversion находится в / home / svn / repo. Затем вы настраиваете Apache для обслуживания хранилища вhttp://local.host/myrepo, Если вы затем создадите каталог / var / www / myrepo /, это вызовет ошибку 301.