So deaktivieren Sie die 301-Weiterleitung, durch die der Schrägstrich zum Verzeichnisnamen in Apache hinzugefügt wird

8

Der Apache 2.2.20 leitet automatisch alle Anfragen um, die auf Verzeichnisse verweisen und hat keinen Schrägstrich auf die gleiche URL mit einem Schrägstrich, wie unten gezeigt:

%Vor%

In allen Fällen ist es ein gutes Verhalten, aber ich muss diese Funktion für einen speziellen Ordner ausschalten (nicht für alle) und kann nicht finden, wo ich es tun kann.

Nach 'Rewrite'-Regeln suchen sagt den Founds nichts - nur Direktive LoadModule mod_rewrite.so. Außerdem befinden sich keine .htaccess-Dateien im Verzeichnisserver in der Verzeichnisstruktur. Gibt es andere Richtlinien, die das Ding machen?

UPD1 Ich versuche SVN über HTTP mit next config einzurichten:

%Vor%

UPD2 Es scheint, dass die "DirectorySlash Off" Direktive nur für "some.host.org/svn" funktioniert und nicht für "some.host.org/svn/repo1", "manche" .host.org / svn / repo2 "etc - untergeordnete Verzeichnisse erben diese Option nicht.

UPD3 Ich versuche, die folgenden Zeilen in config einzufügen, aber das Ergebnis ist dasselbe - "DirectorySlash Off" funktioniert nur für "/ svn" und nicht für Childs.

%Vor%

Gelöst Problem gelöst. Das ist mein Fehler - Ich habe den SVN-Repository-Root unter dem DocumentRoot-Ordner abgelegt, sodass Apache und Web_dav nicht verstehen können, wer die Anfrage bearbeiten muss. Dies gilt zumindest für den TortoiseSVN-Client.

Kommentare von SVN-Entwicklern:

Es bedeutet, dass Ihre httpd.conf falsch konfiguriert ist. In der Regel tritt dieser Fehler auf, wenn Sie den virtuellen Subversion-Standort in zwei verschiedenen Bereichen gleichzeitig definiert haben.

Wenn Sie z. B. ein Repository als exportiert haben, aber auch Ihr DocumentRoot als / www festgelegt haben, sind Sie in Schwierigkeiten. Wenn die Anfrage für / www / foo / bar eintrifft, weiß apache nicht, ob sie eine echte Datei mit dem Namen / foo / bar in ihrem DocumentRoot finden soll oder ob sie mod_dav_svn bittet, eine Datei / Leiste aus dem / www / foo zu holen Repository. Normalerweise gewinnt der erste Fall und damit der Fehler "Moved Permanently".

Die Lösung besteht darin, sicherzustellen, dass sich Ihr Repository nicht in Bereichen befindet, die bereits als normale Webfreigaben exportiert wurden.

Es ist auch möglich, dass Sie ein Objekt im Webstamm haben, das denselben Namen wie Ihre Repository-URL hat. Stellen Sie sich beispielsweise vor, dass das Dokumentenstammverzeichnis Ihres Webservers / var / www lautet und Ihr Subversion-Repository sich unter / home / svn / repo befindet. Anschließend konfigurieren Sie Apache so, dass das Repository unter Ссылка bereitgestellt wird. Wenn Sie dann das Verzeichnis / var / www / myrepo / erstellen, wird ein Fehler 301 auftreten.

    
kruz05 13.11.2012, 01:10
quelle

2 Antworten

9

Verwenden Sie die DirectorySlash-Anweisung von mod_dir. Beispiel aus der Dokumentation:

%Vor%     
gpojd 13.11.2012, 01:16
quelle
2

Hinzufügen

%Vor%

to .htaccess hat gut für mich funktioniert.

    
Andrea 29.01.2016 11:25
quelle