在重写后阻止用户使用旧URL浏览网站

时间:2017-12-26 14:47:08

标签: php .htaccess url mod-rewrite

我是.htaccess的新手,我正在努力制作友好的网址(或漂亮的,SEO友好的网址)。我在.htaccess上做了以下事情:

  - 删除所有文件上的.php扩展名。
  - 重写产品详细信息页面如下:     

RewriteRule ^product-details/([a-zA-z0-9_-]+)/([0-9]+)$ product-details.php?title=$1&id=$2 [L]

但是,当我转到URL栏并输入带有.php扩展名的文件名时,它仍然有效。我希望它将用户重定向到404.php页面。此外,通过产品详细信息页面,我输入旧的URL格式,它也可以。

插图:

index => index.php (Works)
product-details/chair/1205 => product-details.php?title=chair&id=1205 (Works)
怎么预防这个?我应该使用PHP还是.htaccess?如果是这样,什么是.htaccess解决方案?非常感谢!

1 个答案:

答案 0 :(得分:1)

RewriteRule之后,旧网址会自动重定向到新网址。就像用户打开product-details.php?title=chair&id=1205一样,他会自动重定向到product-details/chair/1205

如果有人试图打开它们,那么旧的.php扩展程序网址将无法运行。

并且我不建议将旧网址发送到404 page,因为这会给用户留下错误的印象而不利于SEO