0

我需要将一些网址设为静态,以便在我的网站上进行 SEO 改进。我能够计算出一些简单的 URL,但以下这些给我带来了很多麻烦。我是这种东西的新手。

我为以下网址编写了一些规则,但我无法让它们工作。

我有以下网址

动态网址

http://www.site.net/project.php?projectid=2
http://www.site.net/project.php?projectid=2&do=issuelist
http://www.site.net/project.php?projectid=2&do=issuelist&issuetypeid=bug

我想让它们成为静态网址以获得这样的东西:

静态 URL

http://www.site.net/project-2.html
http://www.site.net/project-2/do-issuelist/
http://www.site.net/project-2/do-issuelist/type-bug.html

参数数据类型

投影: 数字

做: 文字

问题类型: 文本

我的主机运行的是 Linux,所以我需要它用于 Apache,而不是 IIS。

.htaccess的 url 重写规则是什么?

谢谢你的时间。

4

1 回答 1

1

我建议改用以下结构:

http://www.site.net/project/2
http://www.site.net/project/2/issuelist
http://www.site.net/project/2/issuelist/bug

通过这种方式,您可以将/project/路径设为保留期限(只要您当前没有并且从未计划在您的站点上拥有名为“project”的实际顶级目录)。这避免了每次都必须使用多个 RewriteCond 指令来检查请求是否针对有效文件或目录。

如果此模式适合您,那么以下规则应该可以在您的 .htaccess 文件中解决问题:

RewriteRule ^project/([0-9]+)$ /project.php?projectid=$1
RewriteRule ^project/([0-9]+)/([a-zA-Z0-9_-]+)$ /project.php?projectid=$1&do=$2
RewriteRule ^project/([0-9]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ /project.php?projectid=$1&do=$2&issuetypeid=$3

上述 RewriteRule 模式允许doissuetypeid值包含小写、大写、数字、下划线和连字符,但您应该修改模式以适应您的站点允许这些变量的实际限制。

于 2013-06-26T22:55:49.677 回答