簡體   English   中英

htaccess:如何顯示GET變量?

[英]htaccess: How to display GET variables?

我有顯示新聞的代碼。 但現在我想使用.htaccess隱藏id=2 bla。。一切正常,但不顯示get變量

我嘗試使用[L,QSA][NC,QSA]沒有用

//獲取變量

<?php
if (isset($_GET['id']) && !empty($_GET['id'])) {
    $id        = $_GET['id'];
    $stmt_edit = $pdo->prepare('SELECT * FROM articles WHERE id =:uid');
    $stmt_edit->execute(array(
        ':uid' => $id
    ));
    $edit_row  = $stmt_edit->fetch(PDO::FETCH_ASSOC);
    $image     = $edit_row['headline_image'];
    $article   = $edit_row['article_body'];
    $headlines = $edit_row['headlines'];
    $date      = $edit_row['date'];
    $month     = $edit_row['month'];
    $admin     = $edit_row['admin'];
} else {
    header("Location: index.php");
} 

//.htaccess代碼

Options  -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME} -f

RewriteRule ^ - [L]
RewriteRule ^index?$ index.php
RewriteRule ^news/([0-9]+) news.php?id=$newsid [L,QSA]

我正在使用get函數之外的變量,我想顯示各個變量的內容。

 RewriteRule ^news/([0-9]+) news.php?id=$newsid [L,QSA] 

為什么$newsid $newsid在這里被視為文字字符串,因此您的PHP代碼中的$id (即$_GET['id'] )將始終是文字字符串"$newsid" (但是大概是在調試PHP代碼時看到的) ?)

您應該改用$1反向引用。 例如:

RewriteRule ^news/([0-9]+) news.php?id=$1 [L,QSA]

另外:您可能還希望在RewriteRule 模式上使用字符串結尾錨( $ ),否則它將與/news/123anything匹配。 還是那是目的?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM