我有一个用PHP开发的网站。我最近做了URL重写,工作正常。但是,我发现我的参数页面也可以访问。例如。
我转换了此网址 domainname.com/index.php?page=product&pid=5&proTitle=Samsung Galaxy
重写后看起来像这样 domainname.com/products/5/Samsung-Galaxy.html
一切正常。但是,仍可使用旧参数访问“我的网站”。我想如果旧URL中的某些人类型应该自动重定向到理想新页面,如果不是那么索引页面。 Google和MSN不应使用参数访问这些网页。任何帮助将受到高度赞赏。
感谢您的投入。这是我的问题的更多细节。
我转换了此网址 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,它应该将它们引导到Page Not Found,这也不应被任何抓取工具嗅探。
再次感谢您的时间,我希望我能尽快收到您的宝贵回复。
答案 0 :(得分:0)
如果请求是针对看起来丑陋的人而制作的,那么您需要另一条将浏览器重定向到效果更好的网址的规则。例如:
# 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]