2017-07-06 130 views
1

我正在爲我的學校作品組合製作一個簡單的博客。如果我點擊一個鏈接來顯示博客帖子,我的網址是domain.com/post?post_link=First-Post我讀過關於改變這個URL的SO項目的hunderds,但沒有任何適用於我...重寫URL不會做任何事

我希望任何人看到是什麼問題並獲得溶液


我有3個文件,blog.php的(這裏是所有帖子顯示),post.php中(這裏是一個博客帖子顯示,基於頁面之前的翻頁)和一個.htaccess文件。

我blog.php的:

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

我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; 
    } 

我的.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 

除了重寫URL,一切工作正常,如顯示帖子並顯示單個帖子

在blog.php中,我的輸入類型隱藏值是正確的。

請幫助..

丹尼爾

+0

你的行動已經post.php中,你並不需要重寫它。你需要在第二條規則上添加一個RewriteCond,它不包括post.php – colburton

+0

當我將重寫規則改爲RewriteRule^logi /([0-9a-zA-Z] +)$ post.php?post_link = $ 1時, –

回答

0

改變你的行動,只是post

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

生成的URL應該是localhost/takast/post?post_link=First-Post

此規則將然後匹配這一點,但你需要保持查詢字符串[QSA]

完整的.htaccess:

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

我已將其複製到我的.htaccess中,但注意到已更改...謝謝您的幫助 –

+0

好的。在你的例子中,我看不到完整的路徑。 post.php可能不是它的開始。什麼是post.php完整的網址? – colburton

+0

http://localhost/takast/post.php?post_link =首先發布 –