Wie verweise ich auf das Verzeichnis?

443
user2666909

Ich muss Web-URLs wie zeigen

http://example.com/subdir1 http://example.com/subdir2 

in dasselbe Verzeichnis

/var/www/vhosts/example.com/httpdocs/default/ 

auf Linux-Hosting (Ubuntu 16.04, Apache2) - wie geht das bitte? Vielleicht kann es mit .httaccess gelöst werden? Wenn nicht, gibt es eine andere Option, bitte?

1
Erstens, welches ist Ihr Webroot-Verzeichnis. Ich gehe davon aus, dass /var/www/vhosts/example.com/httpdocs/ richtig ist? In diesem Fall befinden sich Unterverzeichnis1 und Unterverzeichnis2 sowie das Standardverzeichnis in httpdocs. Umleitungen können entweder über die vhost-Konfigurationsdatei oder über htaccess durchgeführt werden. Sie können reguläre Ausdrücke verwenden, um einer Art Regel zu folgen, wenn einige Verzeichnisse in das Standardverzeichnis umgeleitet werden. Erlis D. vor 6 Jahren 0
Vielen Dank für Ihre Analyse. Unterverzeichnis1 und Unterverzeichnis2 sind nicht vorhanden. Sie müssen lediglich auf das Verzeichnis / var / www / vhosts / ... verweisen. Ja, .htaccess wird pefect sein - wenn Sie mir ein Beispiel geben könnten, wäre das der Fall großartig. user2666909 vor 6 Jahren 0

1 Antwort auf die Frage

0
Erlis D.

Unter der Annahme, dass sich das Web-Stammverzeichnis befindet /var/www/vhosts/example.com/httpdocs/und Sie ein beliebiges Unterverzeichnis in das Standardverzeichnis umleiten müssen, benötigen Sie eine .htaccess-Regel wie die folgende:

RewriteRule ^subdir.*$ /default/$1 [R=301,NC,L] 

Sie können Ihre htaccess-Regel auf einer Site wie der folgenden testen: http://htaccess.mwl.be/
Was diese Site tut, ist die Überprüfung des regulären Ausdrucks, den Sie im ersten Block der RewriteRule bereitgestellt haben, und der übereinstimmenden Ergebnisse wird auf den gewünschten Pfad umgeleitet.

Beachten Sie, dass die obige Regel je nach Apache-Konfiguration möglicherweise nicht immer funktioniert.

Sie können mit verschiedenen Regex-Ausdrücken spielen, indem Sie den Ausdruck auf Websites wie https://regex101.com/ testen.

Ein guter Ort, um etwas über Regex zu erfahren, ist https://www.regular-expressions.info/

Danke für Ihre Arbeit, aber das brauche ich nicht. Ihr .htaccess-Weiterleitungs-Unterverzeichnis auf Standard, aber ich muss auf der Unterverzeichnis-URL bleiben und Daten und Konfiguration aus dem Standard lesen. Hast du ein Beispiel dafür? user2666909 vor 6 Jahren 0
Soweit ich das beurteilen kann, ist das mit Apache nicht möglich, aber Sie können mehr hier lesen: https://httpd.apache.org/docs/2.4/urlmapping.html Mit den Apache-Umschreiberegeln leiten Sie grundsätzlich ein Verzeichnis oder eine URL um B. ein anderes, um es sauberer aussehen zu lassen, aber den Inhalt eines anderen Verzeichnisses nicht für andere URLs abzurufen. Erlis D. vor 6 Jahren 0
Das funktioniert gut in vhost.conf: Alias ​​/ Unterverzeichnis "/var/www/vhosts/example.com/httpdocs/default" wie geht das in htaccess bitte? user2666909 vor 6 Jahren 0
Versuchen Sie das RewriteRule ^ -Unterverzeichnis (. *) $ / Default / $ 1 [R = 301, NC, L]. Alias ​​funktioniert in .htaccess nicht. Aber wenn es mit der Apache-Konfiguration funktioniert, schlage ich vor, dass Sie das verwenden. Es ist besser als htaccess zu verwenden. Erlis D. vor 6 Jahren 1