0

我有一个用 PHP 开发的网站。我最近完成了 URL 重写,效果很好。但是,我刚刚发现我的带有参数的页面也可以访问。例如。

我转换了这个 URL domainname.com/index.php?page=product&pid=5&proTitle=Samsung Galaxy

重写后它看起来像这样 domainname.com/products/5/Samsung-Galaxy.html

一切正常。但是,我的站点仍然可以使用旧参数访问。我想如果有人输入旧 URL 应该被自动重定向到 Ideally New Page 如果不是那么索引页面。Google 和 MSN 不应使用参数访问这些页面。任何帮助将不胜感激。


感谢您的输入。这是我的问题的更多详细信息。

我转换了这个 URL domainname.com/index.php?page=product&pid=5&proTitle=Samsung Galaxy

重写后它看起来像这样 domainname.com/products/5/Samsung-Galaxy.html

代码看起来像这样。

RewriteRule ^products/(.*)/(.*).html$ index.php?page=product&pid=$1&proTitle=$2 [nc]

重写工作正常。但是,如果我尝试访问旧 URL,即 domainname.com/index.php?page=product&pid=5&proTitle=Samsung Galaxy,该页面仍然可以访问,并且 Google 和其他搜索引擎正在抓取该页面。我想如果有人试图访问这个 URL,它应该将他们定向到未找到的页面,这也不应该被任何爬虫嗅探。

再次感谢您的宝贵时间,我希望我能尽快得到您的宝贵答复。

4

1 回答 1

0

如果请求是针对外观丑陋的 URL,您需要另一条规则将浏览器重定向到外观更好的 URL。例如:

# need to replace spaces with "-"
RewriteRule ^(.*)\ (.*)$ /$1-$2 [L,R=301]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\?page=([^&\ ]+)&pid=([^&\ ]+)&proTitle=([^&\ ]+)
RewriteRule ^ /%1/%2/%3 [L,R=301]
于 2013-09-08T15:20:40.083 回答