Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess类别和产品的重写规则_.htaccess_Url_Mod Rewrite_Seo_Oscommerce - Fatal编程技术网

.htaccess类别和产品的重写规则

.htaccess类别和产品的重写规则,.htaccess,url,mod-rewrite,seo,oscommerce,.htaccess,Url,Mod Rewrite,Seo,Oscommerce,我有一个oscommerce网站,我想经常使用seo URL,我从 我基本上想将URL中的ID号更改为包含产品或类别名称的URL。这种url的一个例子是 http://katanamotorsports.com/innovative-mounts-steel-mounts-prelude-replacement-mount-p-1075.html 我想修改.htaccess文件,这样这些seo友好的url实际上就被重定向到相应的类别和产品页面 我在学习上是一只新蜜蜂,我在.htaccess上完全

我有一个oscommerce网站,我想经常使用seo URL,我从

我基本上想将URL中的ID号更改为包含产品或类别名称的URL。这种url的一个例子是

http://katanamotorsports.com/innovative-mounts-steel-mounts-prelude-replacement-mount-p-1075.html

我想修改.htaccess文件,这样这些seo友好的url实际上就被重定向到相应的类别和产品页面

我在学习上是一只新蜜蜂,我在.htaccess上完全是一只新蜜蜂


有人能帮我吗?

您必须在.htaccess中使用重写规则将外部URL(用户可见)映射到内部版本

您要做的是激活RewriteEngine,然后编写一个RewriteRule来删除URI的第一部分

RewriteEngine on
RewriteRule ^[a-z0-9\-]+-p-([0-9]+)\.html$ /product.php?id=$1
RewriteRule ^[a-z0-9\-]+-c-([0-9]+)\.html$ /category.php?id=$1
请不要像这样使用“SEO友好”URL。他们目前不是搜索引擎优化友好。搜索引擎10年前就喜欢上了它们。在过去的五年里,他们真的只是受伤

  • 谷歌几乎不重视url中的关键词
  • 谷歌对其认为满足用户需求的网站给予权重
所以,不要为搜索引擎设计URL,而是为用户设计URL。用户喜欢

  • 短URL(可能他们可以键入或记住)
  • 有意义的URL(它们可以在单击之前看到它们的内容)
  • 不包含重复或数字(如ID)的URL
如果您的url是:

http://katanamotorsports.com/prelude-replacement-mount

您当前的url是什么样子的?我已经在上面找到了url是的,这是用户将看到的url。但你的“真实”URL是什么?可能是这样?你正确地理解了我的观点,url的基本结构和你粘贴的一样,但在我更改了管理面板中的选项后,新的url变成了我上面粘贴的url。感谢这一点,一个清晰,会将每个页面重定向到相应的php页面?是的,这将重写任何以(字母/数字/破折号作为分隔符)开头的url并以某个php页面的数字id结尾。$1允许您在正确的位置写入找到的ID。您能在这里解释映射吗?我想知道的是,这个重定向将如何生效?是否会在数据库中搜索它?如何确定确切的产品id?通过在文件或数据库中的某些位置匹配名称?如果有人访问此url,他将看不到任何重定向。但是在您的服务器上,请求将被发送到product.php?id=xxx,您通常可以在脚本中看到它。然后你可以从你的PHP(或其他语言)脚本中查询你的数据库。如果你看到外部URL的结构,你会在其中看到“-p-”表示产品,在一些URL中它会是“-c-”,表示类别,我认为看到的答案是,它会将所有页面重定向到product.PHP,对吗?请更新答案以解决此问题。为什么您不为您的评论提供解决方案?我建议他们退后一步。也许他们的问题不是他们认为的那样。在我回答之前,iMat提供了实际适用的重写规则。好的,明白了。你的答案不完全相同,所以我问。