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

Php 防止用户在重写后使用旧URL浏览网站,php,.htaccess,url,mod-rewrite,Php,.htaccess,Url,Mod Rewrite,我是.htaccess的新手,我正在尝试创建友好的URL(或漂亮的、SEO友好的URL)。我在.htaccess上执行了以下操作: -删除所有文件上的.php扩展名 -重写产品详细信息页面,如下所示: RewriteRule ^product-details/([a-zA-z0-9_-]+)/([0-9]+)$ product-details.php?title=$1&id=$2 [L] 但是,当我转到URL栏并键入扩展名为.php的文件名时,它仍然有效。我希望它将用户重定向到404.php

我是.htaccess的新手,我正在尝试创建友好的URL(或漂亮的、SEO友好的URL)。我在.htaccess上执行了以下操作:

-删除所有文件上的.php扩展名
-重写产品详细信息页面,如下所示:
RewriteRule ^product-details/([a-zA-z0-9_-]+)/([0-9]+)$ product-details.php?title=$1&id=$2 [L]

但是,当我转到URL栏并键入扩展名为.php的文件名时,它仍然有效。我希望它将用户重定向到404.php页面。另外,在ProductDetails页面中,我输入了旧的URL格式,它也可以工作

插图:

index=>index.php(Works)
product details/chair/1205=>product details.php?title=chair&id=1205(作品)
如何预防?我应该使用PHP还是.htaccess?如果是,什么是.htaccess解决方案?谢谢!

重写规则之后,旧URL将自动重定向到新URL。例如,如果用户将打开
product details.php?title=chair&id=1205
他将自动重定向到
product details/chair/1205

因此,即使有人试图打开旧的.php扩展URL,它们也永远不会工作


我不建议将旧的URL发送到
404页面
,因为这会给用户留下错误的印象,对
SEO

没有好处。您可以简单地将旧URL重定向到PHP中的新URL吗?为什么要将它们发送到404?@AmitGupta,因为我想严格隐藏.php扩展名和格式是的,当您将旧页面重定向到newmeans product details.php?title=chair&id=1205到product details/chair时,URL扩展名不会出现/1205@AmitGupta没有,但他们会知道他们键入的URL是正确的我在XAMPP localhost上尝试的,但它仍然显示index.php等。您为index.php添加了什么RewriteRule?
RewriteRule^([^\.]+)$$1.php[NC]
并且它对产品详细信息不起作用,也无法添加重定向301以及RewriteRule我应该将其放在哪里?
index => index.php (Works)
product-details/chair/1205 => product-details.php?title=chair&id=1205 (Works)