【发布时间】:2013-12-21 01:36:51
【问题描述】:
我们遇到了 .htacces 中的 url 重写和重定向 301
目前我们的网站只有一个文件 (index.php),它作为变量传递类别 ID,然后显示该类别的内容。
例如: 通过链接 www.oursite.com/index.php?CATID=4 调用类别 Nr 4,该链接显示类别“map-france”的内容 通过链接 www.oursite.com/index.php?CATID=5 调用类别 Nr 5,该链接显示类别“map-italy”的内容
我们总共有大约 800 个类别。
我们想重写 url,以便显示类别名称: 例如: www.oursite.com/map-france 而不是 www.oursite.com/index.php?CATID=4 www.oursite.com/map-italy 而不是 www.oursite.com/index.php?CATID=5
目前最好的办法是使用 .htacces 中的 mod_rewrite 函数
到目前为止,我们已经通过以下代码实现了这一目标:
RewriteEngine On
RewriteRule ^map-france/?$ index.php?CATID=4 [NC,L]
RewriteRule ^map-italy/?$ index.php?CATID=5 [NC,L]
这很好用。
为了避免来自搜索引擎的双重索引,我们还应该应用从旧网址到新网址的重定向 301。 我们设法使用以下代码做到了这一点:
RewriteCond %{QUERY_STRING} CATID=4
RewriteRule ^index\.php$ http://www.oursite.com/map-france/? [L,R=301]
RewriteCond %{QUERY_STRING} CATID=5
RewriteRule ^index\.php$ http://www.oursite.com/map-italy/? [L,R=301]
如果我们把所有东西放在一起,它就不起作用,而且似乎会产生一个永无止境的重定向循环
我们做错了什么?
非常感谢您的帮助:)
【问题讨论】:
标签: .htaccess mod-rewrite url-rewriting url-redirection