REQUEST_URI wird nicht durch Verwendung von APACHE RewriteRule überschrieben?

10

Problem:

Verwenden Sie Kohana / PHP, um eine gehostete Website für andere Unternehmen zu entwickeln. Ich fordere den Kunden auf, in seinem DNS-Server einen CNAME-Eintrag einzugeben, um auf meine Domain zu verweisen. Z.B. Ссылка zeigt auf Ссылка .

Somit ist der Eintrag % {HTTP_HOST} auf meinem Apache-Server 'ladies.somecompany.com'

Ich möchte Ссылка in Ссылка

Obwohl Apache das anscheinend tut, ist $ _SERVER ['REQUEST_URI'] immer noch "/". Das Problem ist, dass Kohana $ _ SERVER ['REQUEST_URI'] verwendet, um die Anfrage an den entsprechenden Controller-Code weiterzuleiten. In diesem Fall wird es an den base Index-Controller und nicht an den Einladungen -Controller weitergeleitet.

Fakten:

Die von mir verwendeten Apache mod_rewrite-Direktiven (in der .htaccess-Datei): -

%Vor%

in der index.php, mache ich:

%Vor%

und ich bekomme:

%Vor%

Also ändert das mod_rewrite die REQUEST_URI nicht?

Benötigen Sie:

%Vor%

Wie bekomme ich das?

======================= Bearbeiten

Protokolleinträge neu schreiben: -

%Vor%     
Ajoy 03.05.2011, 03:47
quelle

3 Antworten

1

1.) Funktioniert dieser Link, wenn Sie ihn manuell aufrufen? Ссылка

2.) RewriteCond %{HTTP_HOST} !^www.mydomain.com$ muss wie RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$

maskiert werden

3.) RewriteRule .* index.php?kohana_uri=.* [PT,QSA,L] ist eine Endlosschleife, da index.php auch auf die Regex RewriteRule ^(.*)$ invites/ [R=301] passt.

4.) Sie benötigen das R-Flag, um den Benutzer zum Einladen von / %{REQUEST_URI} umzuleiten. Die $_SERVER['REQUEST_URI'] = $_GET['myURI']; ist dieselbe URL wie in der Browser-Adressleiste.

5.) Wenn Sie den Besucher nicht umleiten möchten, können Sie das kohana System "hacken" und myURI in der ersten Zeile der index.php setzen, wenn dies die einzige Option wäre, um es zum Laufen zu bringen. Der %code% kann durch mod_rewrite wie gewünscht gefüllt werden.

    
mgutt 03.05.2011 09:03
quelle
0

Wegen der Funktionsweise von mod_rewrite können Sie es nicht sofort in $_SERVER['REQUEST_URI'] haben. Wenn Sie gerne $_SERVER ändern (was manchmal als eine schlechte Idee angesehen wird), wie wäre es mit etwas wie diesem:

%Vor%     
mjec 20.05.2011 18:25
quelle
-1

Löschte meine vorherige Antwort, weil es völlig falsch war. Danke für den Dokumentationslink, etwas Neues gelernt.

Entfernen Sie das QSA-Flag:

%Vor%

Pro Dokumente :

  

'qsappend | QSA' (Abfragezeichenfolge anhängen)   Dieses Flag zwingt die Neuschreibmaschine zu   Anfügen einer Abfragezeichenfolge Teil der   Substitutions-String zum vorhandenen   string, anstatt es zu ersetzen. Benutzen   wenn Sie mehr Daten hinzufügen möchten   die Abfragezeichenfolge über eine Rewrite-Regel.

Sollte das beim ersten Mal bemerkt haben.

    
bradym 03.05.2011 05:08
quelle

Tags und Links