1

在 Stack Overflow 的帮助下,我设法更改了我的链接,使它们对用户和搜索引擎更加友好。此 URLhttp://www.showcase.zz.mu/oferta.php?tip=Club&nume=Goblin&localitate=Bucuresti&judet=Bucuresti&id=52138700c4d7c已更改为 此 URL http://showcase.zz.mu/oferta/Club-Goblin-Bucuresti-Bucuresti-52138700c4d7c.php。如果我尝试手动访问新 URL,它会正常工作。但是,在我的搜索页面上,生成的链接仍然是旧链接,并且在访问动态生成的页面时 URL 保持不变。

这是我的 .htacess 内容:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On

RewriteRule ^oferta/([^-]*)-([^-]*)-([^-]*)-([^-]*)-([^-]*)\.php$ /oferta.php?tip=$1&nume=$2&localitate=$3&judet=$4&id=$5 [NC,L,QSA]

这是在 PHP 中生成链接的代码:

echo "<a href='oferta.php?tip={$result['tip_locatie']}&nume={$result['denumire_locatie']}&localitate={$result['localitate']}&judet={$result['judet']}&id={$result['id_oferta']}'><p style='margin-top: -5px;'>View page</p></a>";

如果您想知道 $result 是什么:

$result = mysql_fetch_array( $resulta )
$resulta = mysql_query($query)

如果您还有什么需要看的,请告诉我。在降级之前让我知道,以便我可以编辑我的问题。谢谢!

4

1 回答 1

1

对于从旧 URL 到新 URL 的外部重定向,您需要附加规则。有这样的代码:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+oferta\.php\?tip=([^&]*)&nume=([^&]*)&localitate=([^&]*)&judet=([^&]*)&id=([^\s&]*) [NC]
RewriteRule ^ /oferta/%1-%2-%3-%4-%5.php? [R=301,L]

RewriteRule ^oferta/([^-]*)-([^-]*)-([^-]*)-([^-]*)-([^-]*)\.php$ /oferta.php?tip=$1&nume=$2&localitate=$3&judet=$4&id=$5 [NC,L,QSA]
于 2013-08-30T19:59:17.073 回答