我对我的网站进行了重新设计,不久之后所有网址都在发生变化。以下是我到目前为止所提出的问题http://cricketweb.net/new-design%20htaccess
我所做的一些研究表明,.htaccess文件中的这么多行会大大降低性能。
我问过我的托管服务提供商,他们说:
“您的信息是正确的,将这么多重定向添加到您的.htaccess会显着减慢您的网站的加载时间。不幸的是,将它们添加到Apache conf在cPanel服务器上不是一个好主意.cPanel进行编辑定期对conf文件进行编辑可能不会很好。我建议首先重新评估重写模式。例如,如果domain1.com有文件夹a,b和c,你想发送访问者到domain1.com/ a到domain2.com/a,对于b和c也是如此,这可以通过1个重写规则来完成。不幸的是,如果URL的方式不一致,就像你想将访问者发送到domain1.com/a到domain2一样.com / asdf和访问domain1.com/b到domain2.com/zxcv的访问者,我们可能需要考虑使用此域的特殊规则来编辑您的apache preconf文件,所以如果您能够缩小,请告诉我们通过合并或不合并编号规则。“
问题在于我看不出如何巩固这些301.
是否有人根据http://cricketweb.net/new-design%20htaccess
提出任何建议?
答案 0 :(得分:5)
不可能优化类型A的关系 - >乙
但是当可以找到重复模式时,
A1 - > B,A2 - > B,A9999 - >乙
或A1 - > B1,A2 - > B2,A9999 - > B9999
你真的可以减少行数。
示例:(超过150行相同类型)
Redirect 301 \cricketgames\commercial\brianlaracricket05\demo100.php http://www.cricketweb.net/game/brian-lara-international-cricket-2005/
Redirect 301 \cricketgames\commercial\brianlaracricket05\demo101.php http://www.cricketweb.net/game/brian-lara-international-cricket-2005/
Redirect 301 \cricketgames\commercial\brianlaracricket05\demo102.php http://www.cricketweb.net/game/brian-lara-international-cricket-2005/
可以简化为:(1行)
RewriteRule ^cricketgames/commercial/brianlaracricket\d+/demo\d+\.php$ http://www.cricketweb.net/game/brian-lara-international-cricket-2005/ [NC,R=301]
其他示例(超过160行):
Redirect 301 \cricketgames\commercial\internationalcricketcaptain2000\screenshot5.php http://www.cricketweb.net/game/international-cricket-captain-2000/
Redirect 301 \cricketgames\commercial\internationalcricketcaptain2006\screenshot13.php http://www.cricketweb.net/game/international-cricket-captain-2006/
Redirect 301 \cricketgames\commercial\internationalcricketcaptain2009\screenshot14.php http://www.cricketweb.net/game/international-cricket-captain-2009/
可以简化为:(1行)
RewriteRule ^cricketgames/commercial/internationalcricketcaptain(20\d\d)/screenshot\d+\.php$ http://www.cricketweb.net/game/international-cricket-captain-$1/ [NC,R=301]
您的文件中存在相同类型的案例。
然后您还可以选择将文件拆分为多个部分(重写),以避免测试从URL开头消除的所有行。 例如,这可以将测试次数除以20到30,只需要进行中间重写。
答案 1 :(得分:0)
作为一种快速解决方案,我建议在规则的左侧生成所有这些.php文件,这只会将用户重定向到右侧的URL。
据我所知,无法使用regexp从旧网址创建新网址。