我知道这是一个已经回答过的问题。问题是我不知道我做错了什么,但当我粘贴在另一个中找到的代码时:
RewriteEngine On
RewriteRule ^([^/]+)/([^/]+)$ index.php?$1=$2
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)$ index.php?$1=$2&$3=$4
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)$ index.php?$1=$2&$3=$4&$5=$6
......没有任何反应。
我只是希望网址变得像:www.foo.com/it/5 而不是www.foo.com?it=5
感谢您的帮助!
答案 0 :(得分:2)
这不会重写您看到的网址,它会重写 Apache 看到的规则。
而且,这些规则很荒谬。我建议更简单的东西:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f #skip if file exists
RewriteCond %{REQUEST_FILENAME} !-d #skip if directory exists
RewriteRule ^(.*)$ index.php?rt=$1 [L,QSA]
当有人要求时:
http://foo.com/fancy/url/here
Apache将其[内部]更改为:
http://foo.com/index.php?rt=fancy/url/here
你的PHP脚本看到了:
$_GET['rt'] == 'fancy/url/here';
然后你可以:
$arr = explode('/', $_GET['rt']);
得到:
$arr == array('fancy','url','here')