2009-07-17 6 views
0

Ich habe eine einfache HTML-Seite, die nur verwendet PHP an zwei Stellen

<?php preg_replace('/(www\.)?([^.]*)\.(com|info)/', '${2}', $_SERVER['HTTP_HOST']); ?> 
<?php echo $_SERVER['HTTP_HOST']); ?> 

In Seite nicht eine vollständige geblasene Programmiersprache erfordern wird auf mehreren Domains geladen, und ich möchte nur zu den Hostnamen als Text in einem anderen statischen Inhalt anzeigen

Ich möchte die Notwendigkeit für PHP vollständig entfernen, aber nicht mit einem anderen vollständigen Compiler oder Interpreter repalce. Ich möchte vermeiden, Javascript zu verwenden. Ich kann leben, ohne in der Lage zu sein, eine Regex zu machen, um die zweite Ebene des Domain-Namens zu erhalten, würde diese Option aber immer noch mögen. Habe ich irgendwelche Möglichkeiten, dies über ein einfacheres Apache-Modul als mod_php zu tun?

Theres nichts falsch mit mod_php, ich sehe gerade, wenn ich die Bedürfnisse dieser Web site minimalisieren kann, an der ich arbeite.

Antwort

5

Ich würde sowohl mod_rewrite als auch SSI kombinieren. Stellen Sie eine Umgebungsvariable mit mod_rewrite:

RewriteCond %{HTTP_HOST} ^(www\.)?([^.]*)\.(com|info)$ 
RewriteRule^- [L,E=HOST:%2] 

und den Zugang dann diese Informationen in SSI mit:

<!--#echo var="HOST" --> 
+0

liefern Das ist nett. +1 – Boldewyn

+0

Ich frage mich, ob die Leistung mod_rewrite und mod_ssi besser als die mod_php Version ist. Ich bezweifle, dass diese Seite jemals genügend Traffic bekommen wird, aber es ist eine gute Übung im Minimalismus. –

0

I havn't getestet kaufen Sie könnten in der Lage sein .htaccess zu bedienen und tun ein Umschreiben wie folgt aus:

RewriteRule (.*) $1?httm_host=%{HTTP_HOST} [L] 

ich sicher weiß nicht, dass der% {HTTP_HOST} Variable in einem zur Verfügung steht umschreiben, aber es könnte funktionieren. Möglicherweise müssen Sie eine Bedingung verwenden, um nach dem zu suchen? in der URL.

0

Wie wäre JavaScript? Sie brauchen nur zwei kleine Änderungen auf der Website, die leicht gemacht werden können. So können Sie einfach statische HTML-Dateien bereitstellen. Und die Domain zu erhalten, können Sie verwenden:

var domain = window.location.hostname; 

Cheers,

Edit: mod_rewrite benutzen: Sie müssen einrichten zwei identische HTML-Dateien, mit der richtigen Domäne in jedem. Dann können Sie sie über

RewriteCond %{HTTP_HOST} .+\.com 
RewriteRule index.html index.com.html [L] 

RewriteCond %{HTTP_HOST} .+\.info 
RewriteRule index.html index.info.html [L] 
+0

Entschuldigung, lesen Sie einfach, dass Sie JS nicht verwenden. Trotzdem wäre es ein praktikabler Weg. Hinterlasse die Antwort für die Überlegung. – Boldewyn

Verwandte Themen