2017-03-16 1 views
0

Ich habe die gleiche Frage gestern gestellt, wurde aber downvoted. Einen ganzen Tag lang um eine Antwort in verwandten Antworten und Dokumentationen kämpfen, aber ohne Glück.Eine hübsche Variable in URL (PHP + Apache)

Ich wiederhole die Frage noch einmal, vielleicht dieses Mal kann ich es klarer kommunizieren.

Ich habe eine einzelne Seite app bei site.com

müssen die Benutzer alle Variablen erstellen lassen, um Frontend übergeben Sie die URL. Eine Variable sollte in der URL sichtbar sein, obwohl eine solche Seite nicht existiert, z. site.com/variable (das Format der URL sollte genau so sein wie hier gezeigt).

Für das Backend verwende ich PHP und Apache.

Meine .htaccess-Datei sieht wie folgt aus:

RewriteEngine On 
RewriteRule ^/(.*)$ /$1 [QSA,L] 
+0

Haben Sie nachgeschaut, wie Sie mit .htaccess eine einzelne Seite unabhängig von der URL rendern können, ohne die URL selbst zu ändern? Das klingt wie es eine Lösung für Sie sein könnte – Stu

+0

ja, sollte es so etwas sein, aber funktioniert nicht: RewriteRule /(.*)/$ 1 – KPzzle

Antwort

0

Was Sie suchen URL rewriting genannt wird. Es ist eine bekannte Funktion, die es ermöglicht, eine Vorlagen-URL in eine bestimmte URL umzuschreiben. Der häufigste Anwendungsfall ist das Verschieben der Komponenten der URL in GET-Parameter.

Ich bin wirklich nicht zu Apache verwendet, sondern eine .htaccess-Datei wie diese sollten den Job

RewriteEngine on 

RewriteRule ^(.*)$ index.php?variable=$1 [QSA,L] 

Also alles tun, was an der Wurzel nächsten ist, sollte auf die index.php übertragen werden, Abfüll- die $ _GET ['Variable'] mit dem gesamten Inhalt. Die Operation findet auf der Apache-Seite statt, sodass für den Client keine URL-Änderung sichtbar ist.

+0

Leider bekomme ich nur um diesen Fehler zu bekommen: Nicht gefunden Die angeforderte URL/Variable wurde auf diesem Server nicht gefunden. – KPzzle

+0

@KPzzle, fügen Sie vielleicht Ihre vollständige .htaccess-Datei zur ursprünglichen Frage hinzu, möglicherweise fehlt etwas wie 'RewriteEngine on' etc, das wäre ein Grund für den nicht gefundenen Fehler. – Stu

+0

Ich benutze nur diese zwei Zeilen, entweder wie @ Jordan Quagliatini schrieb oder wie folgt: RewriteEngine Auf RewriteRule /^(.*)$/$ 1 [QSA, L] – KPzzle

0
index.php 
<a href="1">click</a> 

submit.php 
<?php 
echo $_GET['id']; 
?> 

.htaccess 
RewriteEngine on 
RewriteRule ^([A-Za-z0-9-]+)/?$ submit.php?id=$1 [NC,L] 
+0

Bitte geben Sie mehr Details in Ihren Antworten. Erklären Sie, wie dies helfen würde. –