您好我已经尝试了一周,在我的自定义网站上修复了一些网址,但我无法完成我想要的100%。所以这是我的问题:
我有一个php登陆页面来管理默认url结构的事件:
foreach($resultSet as $key => $event)
{
echo '<a href="/event.php?eid='.$event['eid'].'&cat='.$event['categroy'].'&title='.urlencode($event['title']).'">content</a>';
}
正如您所看到的,url格式是这样的
/event.php?eid=145&cat=metal&title=Great+gig
通过htaccess,我希望它是这样的
domain.com/event/metal/Great gig
我一直在阅读htaccess指南,但我不能让它在网址上使用更多tahn 1 params请告知,谢谢。
答案 0 :(得分:0)
更改您的PHP代码,使其生成类似domain.com/event/metal/Great gig
的网址:
echo '<a href="/event/'.$event['eid'].'/'.$event['categroy'].'/'.urlencode($event['title']).'">content</a>';
(请注意,'category'
在您的示例中有误)
在文档根目录中的htaccess文件中添加这些规则,最好是您可能已经存在的规则之上:
RewriteEngine On
RewriteRule ^/?event/([^/]+)/([^/]+)/(.+)$ /event.php?eid=$1&cat=$2&title=$3 [L,QSA]
此外,如果您的控件之外的链接仍然具有查询字符串,则可以添加以下规则:
RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /event\.php\?eid=([^&]+)&cat=([^&]+)&title=([^\ ]+)
RewriteRule ^ /event/%2/%3/%4? [L,R=301]