Como desabilitar o redirecionamento 301 que adiciona barra direita ao nome do diretório no Apache

O Apache 2.2.20 redireciona automaticamente todas as solicitações que são pontos para diretórios e não possui barra no mesmo URL com barra final, como mostrado abaixo:

GET /some/path/to/dir HTTP/1.1
Host: www.some.org
...

301 Moved permanently
Location: http://www.some.org/some/path/to/dir/

Em todos os casos, é um bom comportamento, mas eu preciso desativar esse recurso para uma pasta especial (não para todos), e não consigo encontrar onde eu posso fazer isso.

Procurando por regras 'Rewrite' diz nada funda - somente diretiva LoadModule mod_rewrite.so. Além disso, não há arquivos .htaccess no servidor de diretórios na árvore de diretórios. Existe alguma outra diretriz que faça alguma coisa?

UPD1 Eu tento configurar o SVN através do HTTP com a próxima configuração:

LoadModule dav_svn_module     /opt/libexec/mod_dav_svn.so
LoadModule authz_svn_module   /opt/libexec/mod_authz_svn.so

NameVirtualHost *:8000
<VirtualHost *:8000>
    ServerAdmin [email protected]
    ServerName some.host.org
    DocumentRoot /path/to/wwwroot
    DAVLockDB /opt/var/lock/davlock/svndavlockdb

   <Directory /path/to/wwwroot>
        Options FollowSymLinks Indexes
#        #AllowOverride None
        Order allow,deny
        Allow from all
   </Directory>

   <Directory /path/to/wwwroot/svn>
        Options FollowSymLinks Indexes
        AllowOverride None
        Order allow,deny
        Allow from all
   </Directory>

    CustomLog /path/to/wwwroot/log/access_log.txt combined
    ErrorLog  /path/to/wwwroot/log/error_log.txt

    <Location /svn>

        #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
        <Limit GET OPTIONS REPORT PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
            Require valid-user
        </Limit>
    </Location>

</VirtualHost>

UPD2 Parece que a diretiva "DirectorySlash Off" funciona apenas para "some.host.org/svn" e não funciona para "some.host.org/svn/repo1", "some.host.org/svn/repo2" etc - diretórios filhos não herdam essa opção.

UPD3 Eu tento adicionar as seguintes linhas na configuração, mas o resultado é o mesmo - "DirectorySlash Off" funciona apenas para "/ svn" e não para os filhos.

<LocationMatch "/svn/.*">
    DirectorySlash Off
</LocationMatch>

RESOLVIDO Problema resolvido. Este é um erro meu - Coloquei raiz do repositório SVN na pasta DocumentRoot, para que o apache e o web_dav não possam entender, quem deve manipular a solicitação. Isto aplica-se ao cliente do TortoiseSVN pelo menos.

Comentários dos desenvolvedores do SVN:

Isso significa que o seu httpd.conf está mal configurado. Geralmente este erro acontece quando você define o "local" virtual do Subversion para existir dentro de dois escopos diferentes ao mesmo tempo.

Por exemplo, se você exportou um repositório como, mas também configurou o DocumentRoot como / www, estará com problemas. Quando a requisição chega para / www / foo / bar, o apache não sabe se deve encontrar um arquivo real chamado / foo / bar dentro do seu DocumentRoot, ou se deve pedir ao mod_dav_svn para buscar um arquivo / barra do / www / foo repositório. Geralmente, o primeiro caso ganha e, portanto, o erro "Movido permanentemente".

A solução é garantir que o seu repositório não se sobreponha ou viva dentro de áreas já exportadas como compartilhamentos normais da web.

Também é possível que você tenha um objeto na raiz da Web que tenha o mesmo nome da URL do seu repositório. Por exemplo, imagine que a raiz do documento do seu servidor web é / var / www e o seu repositório Subversion está localizado em / home / svn / repo. Você então configura o Apache para servir o repositório emhttp://local.host/myrepo. Se você criar o diretório / var / www / myrepo / isto causará um erro 301.

questionAnswers(2)

yourAnswerToTheQuestion