Redirect wrong Subdomains to Main-Domain

Sp1xx

NGBler
Registriert
9 Okt. 2013
Beiträge
641
Ort
Bavaria
Hello,

ich habe ein kleines "Problem" das mich schon eine weile stört.
Es handelt sich um einen Debian Server mit Apache2 Server.

Alle "falschen" Domains sollen auf:



umleiten.

Dh.
www.Domain.de ->
test1235.Domain.de ->
Außer es gibt diese Subdomain.
Im moment sieht meine VirtualHost Config so aus:


[src=html4strict]<VirtualHost _default_:80>
ServerAdmin webmaster@localhost
ServerName www.domain.de*
ServerAlias domain.de*

DocumentRoot /var/www/Domain.de

<Directory /var/www/domain.de>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined

Alias /doc/ /usr/share/doc/
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>
[/src]

Meine .htaccess Datei im Ordner /var/www/domain.de sieht so aus (absolut minimal im Moment um ungewollte Besucher auszusperren) :

[src=html4strict]AuthName "Restricted"
AuthType Basic
AuthUserFile /etc/apache2/.htpasswd
require valid-user[/src]


Ich bin mir mittlerweile im klaren das es etwas mit dem Modrewrite Module zu tun hat, wie genau ich dieses einsetze habe ich leider noch nicht herausgefunden.

Danke für die Mühe:beer:
 
Das hat nix mit rewrite zu tun, sondern lediglich mit vhosts.

Einfach einen default-Server konfigurieren und in deiner apacheconfig die vhosts (subdomains) die du extra aufgelöst haben möchtest.
 
  • Thread Starter Thread Starter
  • #3
Naja das habe ich ja.

Der Haupt Domain Vhost sieht so aus:

[src=apache]<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName domain.org

DocumentRoot /var/www/domain.org

<Directory /var/www/domain.org>
Options FollowSymLinks
AllowOverride All
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined

Alias /doc/ /usr/share/doc/
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>
[/src]

Während die vhost config für test.domain.de so aussieht:

[src=apache]
<VirtualHost *:80>
ServerName test.domain.org
ServerAdmin webmaster@my.address.com

DocumentRoot /var/www/domain.org/test/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/domain.org/test/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

</VirtualHost>



[/src]
 
  • Thread Starter Thread Starter
  • #5
Habe jetzt zwei vhosts.

Einmal die genannte Default für die Hauptdomain und einmal test.domain.xxxx

Über die test subdomain komme ich auch in den entsprechenden Ordner, leider komme ich mit allen anderen subdomains aber trotzdem auf die Hauptdomain und in der Leiste oben steht dann die erfundene Subdomain!

blabla.domain.de geht also genauso wie blub.domain.de nur das ich die hauptseite trotzdem sehe... nervig
 
Probier das mal in einer .htaccess-Datei

[src=text]RewriteEngine on
RewriteCond %{HTTP_HOST} !^test\.domain\.tld$ [NC]
RewriteRule ^(.*)$ http://domain.tld/$1 [R=301,L][/src]

Das sollte für eine Subdomain genügen.

Wenn du mehrere Subdomains benutzen solltest

[src=text]RewriteEngine on
RewriteCond %{HTTP_HOST} !^test\.domain\.tld$ [NC,OR]
RewriteCond %{HTTP_HOST} !^test2\.domain\.tld$ [NC]
RewriteRule ^(.*)$ http://domain.tld/$1 [R=301,L][/src]

weiß aber nicht ob das auch Funktioniert! Hab das nur anhand verschiedener Beispiele zusammengeschrieben.
 
Ich meine, dass das wie von drfuture schon angedeutet, mit dem ServerAlias funktionieren sollte.
Schreibe eine Zeile unter den ServerName die Direktive ServerAlias und danach, jeweils durch ein Leerzeichen getrennt, die Domains und Subdomains.
 
Zurück
Oben