0

我在 URL 重写的世界里很新。我必须在我们自己的 CMS 中这样做,才能有一个好看的 url 并获得一个更好的结构,以提供搜索引擎 (SEO) 的结果。

这是完成我们现在用漂亮的 URL 隐藏的所有工作的背景文件:

这是我的结构模式的一个例子:

CMS 只需在 FR 目录中创建一个 HTACCESS 文件,用于非常基本的重写,如下所示:

Options +FollowSymlinks
RewriteEngine On
RewriteRule produits/solives-de-rive-rimboard index.php?p=144
RewriteRule produits/decoupe-sur-mesure index.php?p=145
RewriteRule produits/panneaux-osb index.php?p=146
RewriteRule produits/boites-de-bois-crates index.php?p=147
RewriteRule produits/palettes-de-bois index.php?p=148
RewriteRule accueil index.php?p=4
RewriteRule a-propos-de-cimdat index.php?p=139
RewriteRule produits index.php?p=140
RewriteRule videos index.php?p=141
RewriteRule nous-joindre index.php?p=142

对于“accueil”、“nous-joindre”等第一级页面,一切正常...

但我还没有找到像“produits/solives-de-rive-rimboard”这样的二级和三级页面的解决方法。index.php 只是加载正常,只是到此页面的所有相关链接都是一个子文件夹(css、图像、jquery...)。

有没有我可以在 htaccess 文件中使用的标签来指定无论在哪个级别“accueil”、“produits/something”或第三级(如 index.php 的“produits/group/something”)都有一个基本路径?

我更喜欢在 htaccess 中寻找解决方法,而不是给 index.php 一个“ <base href="something">”,这可能会给我们的结构带来其他问题。

谢谢

4

1 回答 1

1

这是一个 HTML 问题,而不是服务器或 .htaccess 问题。如果您的浏览器看到类似 /category/product 的内容,无论内部服务器端重定向发送请求的位置如何,它都会像在 /category/ 文件夹中一样运行。

解决这个问题很简单,将 html 中的所有链接更改为相对于站点根目录。所以如果你有一个像

<img src="img/button.gif" />

将其更改为

<img src="/img/button.gif" />

无论您的重写规则如何,这都会告诉浏览器从根目录请求文件的确切路径。这需要为您的所有相关链接完成,包括 css 和 javascripts。这可能需要做一些工作,但是一旦完成,它应该会使以后的维护变得更加容易,因为您不必担心页面的明显路径。

是的,这可以通过 .htaccess 相当简单地完成,但是有副作用,包括搜索引擎可以将其视为重复内容的事实,并且它可能会增加您的服务器带宽使用,因为用户无法有效地缓存静态内容。您最好的选择是在网站是新的和不断发展的时候立即遵循最佳实践,而不是在解决方法导致问题之后再尝试修复它。

于 2012-12-04T20:57:34.727 回答