[英]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.