2016-12-30 174 views
1

我的.htaccess無法使用GET。它顯示「新聞/」,但一旦我去「新聞/ 1」或「新聞/ 1 /」它不起作用。htaccess php GET無法正常工作

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/

RewriteRule ^/?$ index.php [NC,L] 

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

我的PHP是:

if(!isset($_GET["id"])){ 
$Article->printArticles(); 
}else{ 
$Article->printArticle($_GET["id"]); 
} 

但沒有找到$_GET["id"]但在本地主機它的工作原理。 已經嘗試使用[L,QSA],[N],[NC,L]並且沒有任何這些。

htaccess如何查找$_GET["id"]

回答

3

應如何htaccess的樣子找到$_GET["id"]

這是MultiViews一個選項是在你的Web服務器上的最有可能的結果。

關掉它使用這條線在頂部:

Options +FollowSymLinks -MultiViews 

Option MultiViews所使用的Apache's content negotiation module運行mod_rewrite之前,使文件的Apache服務器匹配擴展。因此,如果/news是URL,那麼Apache將提供/news.php