如何重定向旧的“丑陋”的网址,搜索引擎友好的呢?(How to redirect old “ugly

2019-09-02 03:27发布

我是新来的mod_rewrite的,并需要为我的客户做一些事情。

假设我有www.mydomain.com/products.php?prod_id=32。

本产品具有部分(衣服)和名称(衬衫)。 这些名称和节是唯一的。

在搜索引擎优化友好的URL,应该www.mydomain.com/products/clothes/shirt/。

我知道我可以创建

RewriteRule ^products/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ products.php?section=$1&name=$2

我能做到这一点,和它的作品。 但我想谁进入www.mydomain.com/products.php?prod_id=32人被重定向到www.mydomain.com/products/clothes/shirt/(在浏览器本身的改变)。 我该怎么办,没有在我的网址插入ID? 是否可以称之为“预处理” PHP文件在我的.htaccess,并重新创建“products.php?节= $ 1名= $ 2”?

任何人有mod_rewrite的确实详细说明一个很好的链接?

谢谢!

Answer 1:

你可能有一个更大的问题比mod_rewrite可以从容地处理。 您也可以使用PHP来重定向返回到浏览器。 您可以访问数据库的方式来弄清楚,PRODUCT_ID 32 /衣服/衬衫/



Answer 2:

我看不是这样做PHP内没有其他选择。

您可以添加一些你products.php页面的顶部是检查URL( $_SERVER['REQUEST_URI']看看它是否包含products.php -如果是这样,重定向的人。 你需要查询您的数据库中查找出来的产品类别,虽然之前重定向的名称。

记得设置永久的感动头,进一步提高SEO :)



Answer 3:

该数据可能是由浏览器通过“Referer”头字段进行传递。 你可以进步这个URL,并期待在GET参数。 如果我没记错的话,这是不支持所有浏览器。



Answer 4:

在products.php的顶部(或您希望重定向任何网页),你可以把一个函数调用

redirectToSeoUrl();

然后在你的包含文件的一个写redirectToSeoUrl功能得到新的URL并重定向。 确保把代码之前什么是输出到浏览器。



Answer 5:

Apache的? 试着一个.htaccess重定向。 没有mod_rewrite的需要。

实施例:重定向301 /oldpage.html http://www.example.com/newpage.html



文章来源: How to redirect old “ugly” urls to seo-friendly ones?