我有一个完整的网站建立在查询字符串的链接方案上(即?page = about或?page = individual & i = johndoe)。当然,回想起来,我们决定采用不同的(美化)方案,以便更加适合搜索引擎优化(即/ about/or/individual/johndoe /)。如何美丽的查询字符串的网址
有没有办法在Apache .htaccess文件上使用mod_rewrite来完成这种改变,而不必更改站点范围内的所有链接?例如,如果你点击一个链接到?page =关于它会永久地将你重定向到/ about /。
我试过的代码将成功显示/ about/as?page = about,但是,没有涉及重定向。说实话,我从来没有在mod_rewrite上做过任何工作(这有点吓人),所以我觉得我会走错方向。尽管如此,这是迄今为止我一直在使用的代码:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_]+)$ /$1/ [R]
RewriteRule ^([a-zA-Z0-9_]+)/$ /index.php?page=$1
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$ /$1/$2/ [R]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/$ /index.php?page=$1&i=$2
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/$ /index.php?page=$1&id=$2
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/$ /index.php?page=$1&bctid=$2
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/$ /index.php?page=$1&bclid=$2
有什么想法?我非常感谢任何帮助。
有匹配相同的模式是行不通的多个重写规则,是与案件在你的例子中最底层的4个重写规则,因为只有这些规则中的第一个会被apache选中。此外,你应该使用301重定向永久重定向。 –