-1

您好,我已经尝试了 1 周来修复我自定义构建的网站上的一些网址,但我无法 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 指南,但我无法在 url 上使用更多 tahn 1 参数,请告知,谢谢。

4

1 回答 1

0
  1. 更改您的 php 代码,使其生成如下所示的 URL domain.com/event/metal/Great gig

    echo '<a href="/event/'.$event['eid'].'/'.$event['categroy'].'/'.urlencode($event['title']).'">content</a>';
    

    (请注意,'category'您的示例中拼写错误)

  2. 在您的文档根目录的 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]
于 2012-12-11T11:57:47.673 回答