将动态网址转换为静态网址[SEO]

时间:2013-06-26 18:29:22

标签: url mod-rewrite seo rewrite

我需要为我的网站上的SEO改进制作一些静态网址。我能够找到一些简单的URL,但以下的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

我想让它们成为静态网址,以获得类似的内容:

静态网址

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

参数数据类型

projectid: 数字

执行: 文字

issuetypeid: text

我的托管运行Linux,所以我需要Apache,而不是IIS。

.htaccess 的网址重写规则是什么?

感谢您的时间。

1 个答案:

答案 0 :(得分: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值包含小写,大写,数字,下划线和连字符,但您应修改模式以适应您的网站允许的实际约束变量