首页 > 解决方案 > 如何使用 PHP 正确重定向 URL

问题描述

问题的解释

我想将每个页面从不友好的网址重定向到更友好的网址。

我已经在一个.htaccess 文件中使用mod_rewrite 实现了这一点,该文件确实将每个访问者发送到redirect.php。然后该文件根据从 url 获取的参数处理将每个访问者重定向到哪里。

重定向确实可以让人们从/content.php?id?1/titulo-contenido-1我想知道为什么重定向后 url 看起来不“漂亮”。

例如,当您单击 Drupal 论坛中的链接时(我没有使用 Drupal,这只是一个示例),该 URL 看起来很友好: 在此处输入图像描述

在我的脚本中,即使用户点击了友好的 url,浏览器在页面呈现后也会显示不友好的 URL。

我如何获得友好的网址:

我有一个 PHP 页面,其中有一个简短的表单:该表单包含一个标题输入、一个 url 和 textarea 输入。

当我保存表单的内容时,它会保存到 MySQL 数据库中:

身份证-X

标题- 这是我的标题

文本区域-“.....”

url-这是我的标题

当访问者点击 mywebsite.com/this-is-my-title 时,它​​被重定向(通过.htaccess规则)到 redirect.php

在那里,它捕获“this-is-my-title”部分并将其保存到变量中。

然后它查询数据库以从 url 中获取 id,最后它设置一个重定向:

$reenvioA = $http.'://'.$sitio.'/contenido.php?id='.$id;  
header('Location: '.$reenvioA);

所以网站中的链接都是友好的,用户会被这样重定向。

它确实有效,但用户总是看到真正的链接。

我有几种需要重定向的具有不同结构的链接(这一切都在具有不同规则的 redirection.php 文件中完成),因为我正在将来自不同旧网站的东西导入一个新的大网站,我需要人们成为如果他们单击具有旧格式的链接,则会正确重定向。

我的大问题

这会影响SEO吗?或者这只是一个有效的可怕解决方案?

标签: php.htaccessredirectmod-rewrite

解决方案


是的,它会影响 SEO,严重程度取决于您在基于变量的页面上执行的操作。

如果 /content.php?id=1 的内容与 /content.php 不同,Google 将不会知道 /content.php?id=1,因为它没有在站点地图中设置。这将极大地影响SEO。

如果 /content.php?id=1 只更改页面上的几个变量,例如 /content.php 显示“DEAR SIR”和 /content.php?id=1“Dear BILLY”,它不会对您造成太大的惩罚.


推荐阅读