将SEO友好的URL重定向回具有正常链接的页面

时间:2018-07-15 00:21:19

标签: php .htaccess

我有一个名为example的文件夹,其中包含两个文件products.phpproducts-list.php。我还有一个htaccess文件,它将 localhost / example / products.php?id = 12 更改为 localhost / example / products / 12 /

点击products-list.php中的链接,导航至products.php,然后 将浏览器中的URL重写为 localhost / example / products / 12 / 。 我的问题是,当点击重写的URL上的链接( localhost / example / products / 12 / )作为URL上的URL时,我不会无误地导航回到products-list.php浏览器生成为 localhost / example / products / 12 / products-list.php

这是我的product-list.php代码:

<?php

 echo "<a href=\"products.php?id=12\">go to product page</a>";
?>

这是我的products.php代码:

<?php
  echo "<a href=\"products-list.php\">back</a>";
 ?>

这是我的.htaccess代码:

RewriteEngine on
RewriteBase /example/

# external redirect from actual URL to pretty one

RewriteCond %{THE_REQUEST} /products(?:\.php)?\?id=([^\s&]+)\s [NC]
RewriteRule ^ products/%1/? [R=302,L,NE]

# internal forward from pretty URL to actual one
RewriteRule ^products/([^/]+)/?$ products.php?id=$1 [NC,L,QSA]

1 个答案:

答案 0 :(得分:0)

这与htaccess无关。您在 localhost / example / products / 12 / 上使用相对URI。从该页面,相对URI products-list.php重定向到 localhost / example / products / 12 / products-list.php 。要重定向到 localhost / example / product-list.php ,请使用:

<?php
  echo "<a href=\"/example/products-list.php\">back</a>";
 ?>