SEO友好的html / php表单提交

时间:2012-03-07 11:26:04

标签: php url-rewriting html-form seo

我希望在以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();

正如您所看到的,它会收集信息并将您带回页面并声明上一页已永久移动。

问题:

  1. 虽然这可能很原始,但是这仍然可以使用而不会造成太多麻烦吗?

  2. Google会讨厌创建这么多301的

  3. 刚刚注意到代码标题(“Location:/foo.php",TRUE,301);最好是使用这个还是没有区别?

3 个答案:

答案 0 :(得分:2)

  1. 是的,我发现您的解决方案没有任何问题。即使提供了恶意用户输入,它也只会重定向到不存在的页面。

  2. 我不这么认为。你已经使用正确的代码301而不是默认的302,这可能会导致一些麻烦/确实对谷歌造成了一些破坏,被盗的公关和搜索引擎优化

  3. 使用标题(“Location:...”,true,301);是可取的。这样php可以根据环境自动做出决策。例如。如果使用HTTP / 1.0连接,php可以在您的解决方案中使用HTTP / 1.0而不是固定的HTTP / 1.1发送301代码。但是,无论哪种方式都没问题。

  4. 但有一个问题:为什么不直接链接到您的网址?因此,您正在使用的mod_rewrite已经将照片中给出的参数分配给您可以像往常一样通过$ _GET访问的变量。

答案 1 :(得分:0)

你做事的方式是post redirect get(PRG)模式的排列。在你的情况下,它是获取重定向获取。

PRG通常意味着:

  • 用户将表​​单发布到控制器,该控制器可以执行任何操作,并构建所需的URL
  • 脚本REDIRECTs用于所需的网址
  • 用户获取网址,查看结果。

一般来说,这是一个很好的模式,它允许你控制 - 例如 - 从生成的搜索网址中删除默认值。

关于您的具体问题

  1. 如果有效,那很好
  2. Google不会提交表单,因此除非这些网址已存在于其他位置,否则不会找到预先处理的网址以进行301重定向。但是,您需要链接到“http:// site-name / section / brand / min-max”,以便任何搜索引擎知道这些页面是否存在。
  3. 要么很好,一行代码更容易输入

答案 2 :(得分:-3)

搜索引擎不提交表格 因此,任何形式的行动都不能友好。 (而且,另一个结果 - 不,谷歌不会恨你)。

进行额外的重定向而不是显示表单结果毫无意义。