我是新来的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的确实详细说明一个很好的链接?
谢谢!
你可能有一个更大的问题比mod_rewrite
可以从容地处理。 您也可以使用PHP来重定向返回到浏览器。 您可以访问数据库的方式来弄清楚,PRODUCT_ID 32 /衣服/衬衫/
我看不是这样做PHP内没有其他选择。
您可以添加一些你products.php页面的顶部是检查URL( $_SERVER['REQUEST_URI']
看看它是否包含products.php -如果是这样,重定向的人。 你需要查询您的数据库中查找出来的产品类别,虽然之前重定向的名称。
记得设置永久的感动头,进一步提高SEO :)
该数据可能是由浏览器通过“Referer”头字段进行传递。 你可以进步这个URL,并期待在GET参数。 如果我没记错的话,这是不支持所有浏览器。
在products.php的顶部(或您希望重定向任何网页),你可以把一个函数调用
redirectToSeoUrl();
然后在你的包含文件的一个写redirectToSeoUrl功能得到新的URL并重定向。 确保把代码之前什么是输出到浏览器。
Apache的? 试着一个.htaccess重定向。 没有mod_rewrite的需要。
实施例:重定向301 /oldpage.html http://www.example.com/newpage.html