0

我尝试为我的网站使用 seo 友好的 url,我的目标是重写product/131/ABCDEFGHproductpage.php?id=131

我现在实现了它重写路径并打开正确的页面

.ht 访问代码

RewriteEngine on
RewriteBase /
RewriteRule ^product/(([^/]*))/([^/]*)$ /cprrpc/productpage.php?id=$1 [L]

现在我遇到了另一个与内部链接有关的问题,目前此页面上的所有图像等都与相对路径绑定。

现在这行不通了,因为他们都在不同的路径中搜索,

我以另一种方法打开或更改 htaccess 文件。

4

2 回答 2

1

您需要允许 apache 从其真实位置提供现有文件:

RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^product/(([^/]*))/([^/]*)$ /cprrpc/productpage.php?id=$1 [L]

这意味着如果请求图像,apache 将忽略重写。

于 2013-02-22T11:00:34.943 回答
1

您的 URL 在重写的 URL 结构上会出现偏差,因为现在还有两个目录级别。不要使用当前目录的相对 URL ,而是为您的资源使用前导斜杠,或者您可以使用 PHP 在所有资源前面打印应用程序的“根路径”。

例如,不使用相对 URL(到当前目录):

<img src="images/plus.png" />(扩展为localhost/cprrpc/product/131/images/gplus.png

您可以使用前导斜杠,使 URL 相对于 Web 根目录:

<img src="/cprrpc/images/plus.png" />(扩展为localhost/cprrpc/images/gplus.png

或者您可以使用 PHP 打印 Web 根目录:

<img src="<?php echo $WEB_ROOT ?>/images/plus.png" />(扩展为localhost/cprrpc/images/gplus.png

于 2013-02-22T11:01:26.807 回答