这对我有用:
.htaccess
RewriteEngine On
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ profile.php?county=$1&name=$2&id=1
配置文件.php
<h1>Profile</h1>
<?php
echo "County: " . $_GET['county'] . "<br>";
echo "Name: " . $_GET['name'] . "<br>";
echo "Id: " . $_GET['id'];
这个网址:http://localhost/tests/htaccess_test/Cheshire/Martin-Mack
产生了这个HTML:
<h1>Profile</h1>
County: Cheshire<br>Name: Martin-Mack<br>Id: 1
在 Apache 2.2.21 和 PHP 5.3.10 上测试。
在我的测试中,我将两个文件都放入了http://localhost/tests/htaccess_test/
,但您可以将它们放在您想要的位置;他们只需要在同一个文件夹中。
例如,在您的情况下,您应该将文件放在网站的根目录中,这样当您访问时http://www.yoursite.com/Cheshire/Martin-Mack
,重定向将起作用。
如果您仍然无法使其正常工作,请尝试RewriteBase /
在RewriteEngine On
.
完整示例:
RewriteEngine On
RewriteBase /
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ profile.php?county=$1&name=$2&id=1
更新:在您的原始代码中,id
参数是静态的。为了让它也能正常工作,试试这个:
RewriteEngine On
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ profile.php?county=$1&name=$2&id=$3