2016-12-30 131 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