我的网站有超过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错误。
我不知道这里面有什么问题。
请帮帮我!
发布于 2012-05-23 18:03:39
你正在尝试做的事情有问题。你必须理解重写是如何工作的。您正在让您的‘re服务器提供一个不存在的不同页面。因此,通过发送一个丑陋的url到一个更好的搜索引擎优化,你是说,ok服务器给我这个页面代替。如果页面本身不存在,那么服务器会抛出一个404错误。你的重写应该是从你想让他们去的页面重定向到你的旧页面名称,没有R参数,这样你的服务器就会知道,不要给这个页面,给另一个页面,也不要让他们知道它是通过显示另一个url来完成的,这就是删除R所做的事情。然后,为了防止无休止的重定向循环,不要将丑陋的页面名称重定向到新的页面名称。相反,只需显示重定向的url,而不是带有所有丑陋参数的丑陋url。然而,由于你可能已经被索引,搜索引擎知道丑陋的页面,我建议不要再链接到这些页面,并在所有页面上使用新的页面名称来进行导航和引用其他页面,但我会在你的页面上添加规范的meta标签,告诉Google和其他搜索引擎你首选的url是什么。如果你一开始没有任何搜索引擎知道你的url结构和所有这些参数,你可以跳过使用规范的meta标签,因为如果你总是使用重写,搜索引擎不会通过这些名称识别你的页面。
https://stackoverflow.com/questions/10716852
复制相似问题