在这里试一试,看看它是如何工作的。
你在index.php?contact 之间有一个= 尝试删除它。
如果您想让所有链接 URL 友好,而不仅仅是 contact,您可以这样做。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+) index.php?$1&%{QUERY_STRING} [L]
编辑:
你的数组是空白的,因为你没有向它传递任何东西。我看不到您如何签入index.php 文件,但您通常将参数传递为item=value,如index.php?page=contact。您没有使用 index.php=contact 给它一个 item,因此您的数组在 mod_rewrite 中是空白的。
根据我掌握的信息,如果您将变量用作item 和value,如下所示
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?$1=$1&%{QUERY_STRING} [L]
转到http://www.yoursite.com/contact
你会从 PHP $_GET得到这个
Array ( [contact] => contact )
但如果你这样做
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?page=$1&%{QUERY_STRING} [L]
那就去http://www.yoursite.com/contact
然后你会从 PHP $_GET得到这个
Array ( [page] => contact )
然后你检查它像
if($_GET["page"] == "contact"){
//do whatever
}else{
//show homepage
}
我可以看到 .htaccess 规则没有任何问题。这是你的 PHP 设置。