在这里尝试一下,看看它是如何工作的。你有一个=
尝试index.php?contact
删除它。
如果您想让所有链接 URL 友好,而不仅仅是contact
您可以这样做。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+) index.php?$1&%{QUERY_STRING} [L]
编辑:
你的数组是空白的,因为你没有向它传递任何东西。我看不到您是如何签入文件的,但您index.php
通常将参数传递为. 您没有使用它,因此您的数组在 mod_rewrite 中是空白的。item=value
index.php?page=contact
item
index.php=contact
根据我掌握的信息,如果您将变量用作下面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 设置。