0

我的网站有 500 多个动态页面,我已经制作了所有静态(相同)页面并使用 htaccess 文件中的以下规则重定向旧 url 或新 url:

RewriteCond %{QUERY_STRING} ^cid=2&gas=nitrogen$
RewriteRule ^purity\.php$ http://Example.com/gases/nitrogen.php? [R=301,L]

并且通过使用此代码,我的所有页面现在都是静态 url

现在我想使它成为http://www.Example.com/gases/nitrogen(不带扩展名),为此我上传了以下规则:

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^\ ]+)\.php\  [NC]
RewriteRule ^ /%1 [R=301]

此代码实际上是将我的 php 页面重定向到非 php 页面,但出现 404 错误。

我无法弄清楚这个问题。

请帮忙!!

4

1 回答 1

0

您正在尝试做的事情有问题。你必须了解重写是如何工作的。您正在让您的网络服务器提供一个不存在的不同页面。因此,通过将丑陋的 url 发送到一个更好的 SEO 上,你是在说好的服务器给我这个页面。如果页面本身不存在,则服务器会发出 404 错误。您的重写应该来自您希望他们去的页面重定向到您的旧页面名称而不使用 [R] 参数,以便您的服务器知道,不要给这个页面,给另一个页面,不要让他们知道这是通过显示其他 url 来完成,这就是删除 [R] 所做的。然后为了防止无休止的重定向循环,不要将丑陋的页面名称重定向到新的页面名称。反而,只需显示重定向的 url,而不是带有所有这些丑陋参数的丑陋 URL。但是,由于您可能已经被索引并且搜索引擎知道丑陋的页面,我建议您不仅不要再链接到这些页面,而是在所有页面上使用新的页面名称进行导航和引用其他页面等操作,但我会在您的页面上添加规范元标记,告诉 Google 和其他搜索引擎您的首选网址是什么。如果您一开始没有任何搜索引擎知道您的 url 结构以及所有这些参数,那么您可以跳过使用规范元标记,因为如果您总是使用重写,搜索引擎将不会通过这些名称知道您的页面。我不仅建议不再链接到这些页面,并在所有页面上使用新页面名称进行导航和引用其他页面等操作,而且我会在你的页面上添加规范元标记,告诉 Google 和其他搜索引擎你的首选网址是。如果您一开始没有任何搜索引擎知道您的 url 结构以及所有这些参数,那么您可以跳过使用规范元标记,因为如果您总是使用重写,搜索引擎将不会通过这些名称知道您的页面。我不仅建议不再链接到这些页面,并在所有页面上使用新页面名称进行导航和引用其他页面等操作,而且我会在你的页面上添加规范元标记,告诉 Google 和其他搜索引擎你的首选网址是。如果您一开始没有任何搜索引擎知道您的 url 结构以及所有这些参数,那么您可以跳过使用规范元标记,因为如果您总是使用重写,搜索引擎将不会通过这些名称知道您的页面。

于 2012-05-23T10:03:39.277 回答