![Welche htaccess-Regeln ENTFERNEN das Unterverzeichnis, das die Site bereitstellt, aus der URI (404, sofern enthalten) und den internen Links?](https://rvso.com/image/1558054/Welche%20htaccess-Regeln%20ENTFERNEN%20das%20Unterverzeichnis%2C%20das%20die%20Site%20bereitstellt%2C%20aus%20der%20URI%20(404%2C%20sofern%20enthalten)%20und%20den%20internen%20Links%3F.png)
**SIEHE UPDATE UNTEN*****
Meine primäre Domänensite soll aus einem Unterverzeichnis auf meinem Server bereitgestellt werden, das denselben Namen wie die Domäne trägt. Daher wird es wahrscheinlich verwirrend sein, diesen unübersichtlichen Block meiner Webroot-.htaccess zu lesen:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
# remove www
RewriteCond %{HTTP_HOST} ^www\.(.+)$
RewriteRule ^.*$ %1 [NC,QSA,R=301]
#RewriteCond %{ENV:REDIRECT_STATUS} . [OR]
RewriteCond %{HTTP_HOST} ^(www\.)?my\-web\.agency$
RewriteRule ^my-web.agency/ - [L,R=404]
RewriteRule !^my-web.agency/ my-web.agency/%{REQUEST_URI} [NC,QSA]
</IfModule>
Ich habe einfach so lange daran gearbeitet, die Regeln geändert und die Struktur verändert, dass dieses Manöver nun das ist, was ich jetzt habe.
Das www. BLEIBT, daher ist der Versuch, es zu entfernen, völlig wirkungslos.
Die Regel !^my-web.agency/ ist für die Website tatsächlich effektiv. ABER mein folgender Versuch, eine 404-Fehlermeldung zu erzeugen, wenn das Unterverzeichnis in der URI enthalten ist, schlägt fehl.
Bitte erklären Sie mir, wie ich das alles in Ordnung bringen kann. Ich versuche, die Dokumente zu lesen, zu lernen und es herauszufinden, aber irgendwie schaffe ich es einfach nicht und ich habe schon viel Zeit investiert. Ich muss wirklich aufhören. Bitte helfen Sie mir. Ich werde immer dankbar sein, wenn ich lerne und sorgfältig darauf achte. Vielen Dank.
*****UPDATE:** Jetzt habe ich
# remove www, externally for consistent domains (successful)
RewriteCond %{HTTP_HOST} ^www\.(.+)$
RewriteRule .* http://[[percent]]1/$0 [NS,L,R=301,QSA]
RewriteCond %{HTTP_HOST} ^(www\.)?my\-web\.agency$
RewriteCond %{REQUEST_URI} ^my-web.agency
RewriteRule ^(.*)$ - [R=404,L,NC]
RewriteCond %{HTTP_HOST} ^(www\.)?my\-web\.agency$
RewriteCond %{REQUEST_URI} !^my-web.agency
RewriteRule ^(.*)$ /my-web.agency/$1 [L,NC,QSA]
Dadurch verschwindet das www. tatsächlich, wenn man es versucht. Aber alle INTERNEN LINKS BEINHALTEN IMMER NOCH das Unterverzeichnis, das versteckt werden soll (interne Links lauten beispielsweise „http://my-web.agency/my-web.agency/somepage") und der Zugriff auf Seiten mit dem Unterverzeichnis in der URI funktioniert immer noch; mir wäre es lieber, wenn eine 404-Fehlermeldung zurückgegeben würde.
DocumentRoot oder RewriteBase scheinen logische mögliche Lösungen zu sein, wenn ich nur die richtige Implementierung herausfinden könnte. (Das [[percent]]
vorangestellte http:// in der 1. RewriteRule soll es durch den Editor lassen, ohne einen Fehler zu werfen; zeigt einfach an %
.)