Ich habe meinen ganzen Code für meine Website in meinem Dokumentenstamm unter mywebfolder
gespeichert. Es gibt viele Unterverzeichnisse, z.B. mywebfolder/deals/..
mywebfolder/user/..
und so weiter. Ich hostet derzeit meine Website mit mydomain.com.Mod_Rewrite Einfachste Möglichkeit, Ordner in URL für ALLE Unterverzeichnisse zu verstecken
Ich möchte nicht mywebfolder
jederzeit anzeigen, wie es redundant ist und macht meine URLs unnötig länger und schwer zu merken. Ich habe ein mod_rewrite ausgeführt, das dies erreicht, aber nur wenn ich zu mydomain.com gehe. (Das heißt, es funktioniert nur für den Dokumentenstamm). In meinem 000-default.conf Datei habe ich folgendes bekam:
RewriteEngine On
<Directory "/var/www/html">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
RewriteCond %{HTTP_HOST} ^mydomain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mydomain\.com$
RewriteCond %{REQUEST_URI} !^/mywebfolder/
RewriteRule(.*) /mywebfolder/$1
</Directory>
Ich verstehe, dass meine Bedingungen für die Rewrite nur tun, wenn ich zu mydomain.com navigieren. Gibt es trotzdem, kann ich diese auf die gesamte Website leicht extrapolieren, so dass beim Navigieren nie ein Benutzer /mywebfolder/
in der URL sieht? Oder muss ich einen Verzeichnisblock für jedes Verzeichnis erstellen?
Ihre Conf scheint in Ordnung und es ist unklar, was nicht funktioniert wie erwartet. Kannst du das Beispiel vollständige URL geben? –
@DusanBajic Das funktioniert nur, wenn ich zuerst zu meiner Domain gehe. Also navigiere ich zu www.mydomain.com' und es geht auf meine Splash-Seite, die sich im Verzeichnis mydomain.com/mywebordner/ befindet, und wird korrekt angezeigt, ohne dass mein Webordner in der URL angezeigt wird. Sobald ich jedoch auf einen der Links klicke und in einen tieferen Unterordner blogge, wird mywebfolder angezeigt. So zum Beispiel klicke ich einen Link von meiner Splash-Seite und es bringt mich zu mydomain.com/mywebfolder/subdirectory/mypage.php. Aber ich möchte es anzeigen: mydomain.com/subdirectory/mypage.php. Gibt es einen Weg, dies zu erreichen? Vielen Dank! – chaseshak
Ja, ich sehe es jetzt. Es ist möglich, aber lass es mich zuerst testen. –