规格 :
- 语言:PHP
- 数据库:MYSQL
- 网站类型:动态
- .htaccess 使用:高
- 启用 Apache 模块:mod_rewrite 和 mod_spelling
重写代码:
RewriteRule ^(.+)-(.+)~(.+)\.html$ gallery-model.php?gallnm=$1&newnm=$2&modelid=$3
有2个问题需要解决,
1. URL 重复问题 2. URL 中追加查询字符串
问题 #1:URL 重复问题
根据 SEO-MOZ 报告,有两个不同的 URL 具有相同的内容。例如,
URL 结构:http ://www.example.co.uk/galleryname-modelname~modelid.html
网址 1:http ://www.example.co.uk/Shoes-Blackmamba~23.html
网址 2:http ://www.example.co.uk/shoes-blackmamba~23.html
请注意,URL 1 具有驼峰式文本,而 URL 2 具有小写文本。
Gallery-model.php 文件将 100 条记录存储在 MYSQL 数据库中,以使其显示在上述 URL #1 和 #2 中。
注意(S):
- 解析查询字符串合理的变量都使用'strtolower'。双重检查并确认。
- 如果您检查上面的REWRITE CODE,您可以在最后看到 [nc]。如果我尝试操作,它会返回 500 内部服务器错误。
如何阻止具有相同内容但不同 URL 的 URL 重复?
ISSUE #2:查询字符串附加在 URL 中
请检查REWRITE CODE它具有将 URL 重写为 SEF 的功能。一些 URL 工作正常,但其余的附加查询字符串。例如,
http://www.example.co.uk/shoes-blackmamba~23.html?gallnm=Shoes&newnm=Blackmamba&modelid=23
注意(S):
如果您检查上面的 URL,您可以在查询字符串中找到驼峰式。
正在应用REWRITE CODE ,因此它不应在“URL?”之后附加变量名称和当前值。但确实如此。
- 正在使用 trim() 并且没有应用 mysql 大小写更改。
如何消除此查询字符串?
针对问题 #1 和 #2 的尝试解决方案:
- mod_spelling.c 已启用,但它返回 500 内部服务器错误。
- 几次谷歌搜索后,强制 URL 小写。
我期待着您的回复。