it-swarm.com.de

Htaccess für Wordpress auf einzelne Subdomain gesetzt

Situation

  • Ich habe Standard-Hosting in OVH (nicht VPS) und kann viele Websites in verschiedenen Unterverzeichnissen darauf einstellen.
  • Ich möchte 2 Instanzen von Wordpress installieren - zuerst im Verzeichnis /A und dann im Verzeichnis /B
  • Ich möchte, dass "A" domain.com und "B" subdomain.domain.com verwendet.

Frage

  • Muss ich in diesem Fall die .htaccess-Standardkonfiguration für Wordpress für eine einzelne Domäne in jedem Wordpress-Verzeichnis verwenden oder muss ich eine spezielle Konfiguration für die Unterdomäne in jedem Wordpress-Verzeichnis verwenden?

Domain

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

SubDomain

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
  • oder sollte ich vielleicht eine Unterverzeichnisversion von .httaccess verwenden?

Unterordner

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
2
user3799089

Mein Vorschlag ist: Verwenden Sie dieselbe Standard-.htaccess-Konfiguration für Wordpress in einer einzelnen Domäne in jedem Wordpress-Verzeichnis.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Fügen Sie außerdem einen kleinen CODE hinzu, um sicherzustellen, dass Benutzer zur richtigen Domäne umgeleitet werden, falls sie mit einer anderen Domäne in dieses Unterverzeichnis gelangen:

RewriteCond %{HTTP_Host} !^domain\.com$
RewriteRule ^(.*)$ "https://domain.com/$1" [R=301,L]

Danach lautet Ihr .htaccess für domain.com wie folgt:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_Host} !^domain\.com$
RewriteRule ^(.*)$ "https://domain.com/$1" [R=301,L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

und für subdomain.domain.com ist es wie folgt:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_Host} !^subdomain\.domain\.com$
RewriteRule ^(.*)$ "https://subdomain.domain.com/$1" [R=301,L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Gründe dafür:

  1. Die Verwendung von Standard-CODE wird empfohlen, da es einfacher zu warten und zu debuggen ist, da es überall gleich ist.

  2. Die zusätzlichen zwei Zeilen werden hauptsächlich für SEO empfohlen. Ohne sie ist möglicherweise eine Ihrer Domänen über eine andere Domäne erreichbar. Dies kann zu doppelten Fragen führen.

2
Fayaz