2017-07-06 1 views
1

Je crée un blog simple pour mon portfolio pour l'école. Si je clique sur un lien pour afficher un article de blog, mon URL est domain.com/post?post_link=First-Post J'ai lu un certain nombre d'articles sur la modification de cette URL, mais rien ne fonctionne pour moi ...Réécrire l'URL ne fait rien

j'espère que quiconque voir quel est le problème et donner une solution


J'ai 3 fichiers, blog.php (Voici tous les postes ont montré), post.php (Voici un blogpost montré, basé sur post tiltle de la page précédente) et un fichier .htaccess.

Mon blog.php:

<form method="GET" action="post.php"> 
        <input type="hidden" name="post_link" value="<?php echo $post_link;?>"> 
        <input type="submit" name=""> 
       </form> 

Mon post.php:

$post_link = $_GET["post_link"]; 

$sql = "SELECT * FROM blogposts WHERE post_link='$post_link'"; 
$result = mysqli_query($conn, $sql); 
    if ($result) { 
     while ($row = mysqli_fetch_array($result)) { 
      $post_link = $row["post_link"]; 
     } 
     echo $post_link; 
    } 

Mon fichier .htaccess:

Options FollowSymLinks 
RewriteEngine On 
RewriteRule ^post/([0-9a-zA-Z]+)$ post.php?post_link=$1 
RewriteRule ^post/([0-9a-zA-Z]+)/ post.php?post_link=$1 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

En plus de réécrire l'URL, tout fonctionne très bien , comme montrant les messages et montrant un seul poste

Dans blog.php, la valeur masquée du type d'entrée est correcte.

S'il vous plaît aider ..

Daniël

+0

Votre action est déjà post.php, vous n'avez pas besoin de réécrire lui. Vous devez ajouter un RewriteCond sur la deuxième règle, qui exclut post.php – colburton

+0

Lorsque je change la réécriture en RewriteRule^logi/([0-9a-zA-Z] +) $ post.php? Post_link = $ 1 aussi rien ne se passe –

Répondre

0

Changer votre action juste post

<form method="GET" action="post"> 

L'URL résultante doit être localhost/takast/post?post_link=First-Post

Cette règle sera alors correspondre, mais vous avez besoin pour conserver la chaîne de requête [QSA].

.htaccess complète:

Options FollowSymLinks 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php [QSA] 
+0

Je l'ai copié dans mon .htaccess, mais notant changé ... Merci en tout cas pour votre aide –

+0

Ok. Je ne peux pas voir le chemin complet dans votre exemple. post.php peut ne pas être le début de celui-ci. Quelle est l'adresse complète de post.php? – colburton

+0

http: //localhost/takast/post.php? Post_link = Premier-poste –