2017-06-05 2 views
0

Ich arbeite derzeit an einer Website, wo Schüler Artikel erstellen können, die von anderen kommentiert werden können.Wie kann ich GET-Parameter als neues Verzeichnis anzeigen?

Ich habe bereits ein Skript entwickelt, das sie erstellt und speichert sie in einer MySQL-Datenbank.

Jeder dieser Artikel sollte unter www.mydomain/articles/xyz/

aber ich will nicht erstellen ein neues Verzeichnis für jedermann verfügbar sein. Also ist es möglich, den Parameter article = xyz (www.maydomain/articles/articles.php&articles=xyz) zu übergeben, um wie zuvor erwähnt zu werden?

Es tut mir leid, wenn mein Problem zu komplex ist. Wenn Sie eine Frage dazu haben, zögern Sie nicht, mich zu kontaktieren! :)

Antwort

1

Vielleicht so etwas wie dies mit .htaccess Datei führen Sie tun können.
Sie können

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    DirectoryIndex index.php 
    RewriteBase/
    RewriteRule ^index\.php$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-l 
    RewriteRule . /index.php [L] 
</IfModule> 

jede Seite auf Ihre index.php Seite umleiten Und dann können Sie Ihre Domäne in Ihrer php Datei handhaben:

<?php 

/* 
Example URL 
$url = www.maydomain/articles/querystring/articles/xyz/param2/value2/param3/value3 
$url = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; 
*/ 

$url = "www.maydomain/articles/querystring/articles/xyz/param2/value2/param3/value3"; 
$url = explode("/querystring/", $url); 

/* 
Where $url[0] is (www.maydomain/articles), 
and $url[1] is the rest of it (queryqtring/articles/xyz/param2/value2/param3/value3) 
*/ 

// If you need you can include your page articles on your index page like this 
$page_name = explode("/", $url[0]); 
$page_name = end($page_name); 
include("/path to your directory/". $page_name .".php"); 

$query_string = $url[1]; 
// And one more explode for query string: 
$query_params = explode("/", $query_string); 


for($i=0; $i<count($query_params); $i++) 
{ 
    // odd value is GET name 
    $key = $query_params[$i]; 
    // even value is GET value 
    $value = (isset($query_params[$i+1])) ? $query_params[$i+1] : ""; 
    $_GET[$key] = $value; 
    $i++; 
} 

echo "<pre>"; 
print_r($_GET); 
echo "</pre>"; 

/* 
// GET Output 
Array 
(
    [articles] => xyz 
    [param2] => value2 
    [param3] => value3 
) 
*/ 

?> 
+0

Vielen Dank, aber das sieht ziemlich kompliziert zu einem Neuling wie Ich .. –

+0

@ T.Smith Thing, was Sie brauchen, ist nicht ganz einfach. Dies ist eine vollständige Lösung zum Kopieren/Einfügen. In Ihrem Stammordner erstellen Sie '.htaccess' Datei mit meinem Beispielcode, und setzen Sie diesen PHP-Code über Ihre' index.php' Seite, wobei 'index.php' und' .htaccess' im selben Stammordner sein müssen. –

+0

Okay, ist es '.htaccess.txt'? –

Verwandte Themen