首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将动态urls转换为静态[SEO]

问将动态urls转换为静态[SEO]
EN

Stack Overflow用户
提问于 2013-06-26 18:29:22
回答 1查看 3.5K关注 0票数 0

我需要使我的网站上的SEO改进的一些urls静态。我能够计算出一些简单的URL,但下面的URL给我带来了很多麻烦。这类东西我是新来的。

我为下面的urls编写了一些规则,但是我无法使它们工作。

我有以下URL

动态URL

代码语言:javascript
复制
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

我想让它们成为静态urls,得到这样的东西:

静态URL

代码语言:javascript
复制
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

Params数据类型

投影:数值

do:文本

issuetypeid:文本

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

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

耽误您时间,实在对不起。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-26 22:55:49

我建议采用以下结构:

代码语言:javascript
复制
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文件中起作用:

代码语言:javascript
复制
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模式允许do和issuetypeid值包含小写、大写、数字、下划线和连字符,但是您应该修改模式以适应站点允许的实际约束。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17327778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档