2016-04-14 12 views
1

Meine Site verwendet sowohl PHP als auch JS AJAX, daher bin ich mit beiden ziemlich vertraut, und ich möchte keine Lösung, die sie enthält. Ich habe diese Seitenstruktur, wo alle meine Benutzer auf nur einer Landing-PHP-Seite bleiben, die dann abhängig von der p-Variable der URL den richtigen Inhalt holt.HTML URL-Variablen entfernen, KEINE PHP- oder JS-Lösung

http://www.example.com/?p=about 
http://www.example.com/?p=aMap-anothermap-evenAnothermap-lastelyTheFile 

Diese Seite Struktur funktioniert gut für mich, außer dass ich weiß nicht, den richtigen Weg, um einen Link zu machen, dass die ganze ?p=home entfernt nur. Weil ich möchte, dass meine Startseite/Startseite frei ist. Ich will es

http://www.example.com/ 

statt

http://www.example.com/?p=home 

sein Jetzt konnte ich nur den Link

http://www.example.com/? 

machen und dann entfernen Sie einfach das ? mit dem JS pushState(), aber das würde aussehen ziemlich dumm und würde nur für JS Benutzer arbeiten.

Nehmen wir an, ich möchte das obige Beispiel nur mit der ? dann könnte ich einen Link wie folgt erstellen.

<a href="?">Link</a> 
<script src="SomeCoolPushStateScript"></script> 

Und ich weiß aus Erfahrung, dass dies nicht funktioniert auch:

<a href="">Link</a> 

kommt also hier die Frage: Wie entferne ich den ?variable=something Teil einer URL, wenn href einen HTML verwenden?

Antwort

2

Der Pfad ./ sollte den Trick tun.

<a href="./">Link</a> 

Wenn Sie die Haupt-Skriptnamen beibehalten mögen, wie index.php, werden Sie diesen Namen enthalten müssen.

<a href="index.php">Link</a> 

Alternativ können Sie dynamisch domänen relative oder absolute URL mit PHP generieren.

+1

Für die spezifische Frage des OP, ich denke 'href ="/"' und sogar 'href =" www.example.com/ "' konnte ebenso gut arbeiten. –

+1

@Andrew Sie müssten '//', 'http: //' oder 'https: //' für die zweite hinzufügen, aber ja, vorausgesetzt, es befindet sich im Stammverzeichnis der Site. –

+0

Die 'Link' hat es für mich getan, vielen Dank! –

1

Sie müssen keine Querystrings verwenden.

<a href="/">Link</a> 

würde zum Stammverzeichnis von example.com gehen.

Ich empfehle nicht "./" zu verwenden. Dies würde tun, was Sie wollen, wenn sich der Benutzer auf einer Seite befindet, die sich im Stammverzeichnis Ihrer Website befindet (z. B. http://www.example.com/page.html). Dies würde jedoch nicht funktionieren, wenn sie sich auf einer Seite in einem Unterverzeichnis befinden. Z.B. Wenn der Benutzer auf http://www.example.com/hello/page.html ist, würde es nur auf http://www.example.com/hello/ verknüpfen.

Mit "/" wird sichergestellt, dass der Benutzer zum Stamm Ihrer Website geht.

+0

Oh okay, ich habe es ausprobiert und es hat nicht funktioniert, aber das liegt wahrscheinlich daran, dass meine Website derzeit nicht im Stamm meines Apache-Testservers ist. –

+0

Ist die Erweiterung? Variable = value der URL eine Querystring? –

+2

@JohanSundman Ich werde für Punit antworten und ja sagen, das ist eine Abfragezeichenfolge. –