我需要为我的网站上的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 的网址重写规则是什么?
感谢您的时间。
答案 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模式允许do
和issuetypeid
值包含小写,大写,数字,下划线和连字符,但您应修改模式以适应您的网站允许的实际约束变量