2016-08-10 13 views
1

Ich bin durch ein seltsames Verhalten von. Htaccess..htaccess Ordner/Subdomain Rewrite-Regel

Ich bin eine Regel von .htaccess Schreiben der folgenden URL zu konvertieren: (., Wo site Variable)

ich die folgende URL zu konvertierende

www.xyz.com/domain/site 

zu

site.xyz.com/ 

Beachten Sie, dass /site zur Laufzeit generiert wird. (Erstellt von Benutzer)

Aber meine Regel funktioniert nicht.

MEIN CODE

Options +FollowSymLinks 
RewriteEngine On 

RewriteBase/

RewriteCond %{HTTP_HOST} !www.xyz.com$ [NC] 
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).xyz.com [NC] 
RewriteRule (.*) nono.html?sm=%2 [NC,QSA] 
+0

Was Sie meinen "nicht funktioniert". Du hast einen fehlerhaften _space_ das CondPattern der 2. RewriteRule, der den Server "kaputt" macht, also ist das nur ein Tippfehler in der Frage? Ist auf Ihrem Server eine Platzhalter-Subdomäne konfiguriert, sodass diese Subdomänen aufgelöst werden? – MrWhite

+0

ja Platzhalter ist konfiguriert ich muss nur auf Subdomain umleiten .. @ w3dk – adasdasd

+0

@ w3dk ich brauche eine Htaccess-Regel, um nur die dynamische Subdomain-URL zu treffen, auch nach dem Entfernen von Speicherplatz, es funktioniert nicht – adasdasd

Antwort

0

Ihre aktuelle Regel erscheint auf „Art“ tut das Gegenteil von dem, was man in der Frage stellen, aber mit einem zusätzlichen Twist. dh. Eine URL für das Formular site.xyz.com/something würde intern in site.xyz.com/nono.html?sm=site geschrieben werden.

Um umleitenwww.xyz.com/domain/site zu site.xyz.com/, wie Sie gesagt hat, dann könnte man so etwas wie (?):

RewriteCond %{HTTP_HOST} ^www\.(xyz\.com)$ [NC] 
RewriteRule ^domain/([^/]+)$ http://$1.%1/ [R=302,L] 

Ändern die 302 (temporären) Umleitung zu 301 (permanent), wenn Sie sind Sicher, das funktioniert OK. Oder testen Sie mit deaktiviertem Browser-Caching. (301 Weiterleitungen werden sonst vom Browser zwischengespeichert, so kann das Testen problematisch.)

0

Ich habe Ihr Problem.

Ihre re-write Regel direkt gegenüber ..

Verwendung dieses für Ihr genaues Problem

und es wird

arbeiten
RewriteEngine on 
RewriteBase/
RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^(www\.)?xyz.com/domain/(.+)$(.*) 
RewriteRule (.*) https://$1.xyz.com/ [L]