我希望在以html格式提交过滤器后创建一个SEO友好的URL。
在玩了一段时间之后我找到了一条路,但是我想知道人们对它的看法是什么,因为我是新手。
我在.htaccess文件中添加了一些重写规则,以使网址更加友好。以下示例:
原始网址: 站点娜内/ list.php的品牌= brand1&安培;最小价格= 0&安培;最大价格= 2000
重写后的网址: 站点名称/节/ brand1 / 0-200
目前我有一个表单,将信息提交到一个单独的php页面,该页面收集变量并从中创建一个新的url,然后用301重定向。下面的php示例:
$min = $_GET[‘min-price’];
$max = $_GET[‘max-price’];
$brand = $_GET[‘brand’] ;
header ('HTTP/1.1 301 Moved Permanently');
header('Location: http://site-name/section/' . $brand . '/'. $min.'-'.$max );
exit();
正如您所看到的,它会收集信息并将您带回页面并声明上一页已永久移动。
问题:
虽然这可能很原始,但是这仍然可以使用而不会造成太多麻烦吗?
Google会讨厌创建这么多301的
刚刚注意到代码标题(“Location:/foo.php",TRUE,301);最好是使用这个还是没有区别?
答案 0 :(得分:2)
是的,我发现您的解决方案没有任何问题。即使提供了恶意用户输入,它也只会重定向到不存在的页面。
我不这么认为。你已经使用正确的代码301而不是默认的302,这可能会导致一些麻烦/确实对谷歌造成了一些破坏,被盗的公关和搜索引擎优化
使用标题(“Location:...”,true,301);是可取的。这样php可以根据环境自动做出决策。例如。如果使用HTTP / 1.0连接,php可以在您的解决方案中使用HTTP / 1.0而不是固定的HTTP / 1.1发送301代码。但是,无论哪种方式都没问题。
但有一个问题:为什么不直接链接到您的网址?因此,您正在使用的mod_rewrite已经将照片中给出的参数分配给您可以像往常一样通过$ _GET访问的变量。
答案 1 :(得分:0)
你做事的方式是post redirect get(PRG)模式的排列。在你的情况下,它是获取重定向获取。
PRG通常意味着:
一般来说,这是一个很好的模式,它允许你控制 - 例如 - 从生成的搜索网址中删除默认值。
关于您的具体问题
答案 2 :(得分:-3)
搜索引擎不提交表格 因此,任何形式的行动都不能友好。 (而且,另一个结果 - 不,谷歌不会恨你)。
进行额外的重定向而不是显示表单结果毫无意义。