在意识到主页redirect的主要滞后之后,我读入了许多优化线程,certificate了301redirect在大约100ms内猛增了400ms,超出了总加载时间。 在我的网站大约250ms。 傻我知道! 另一方面,我确实需要redirect到默认语言,因为不同语言的其他域。 我有什么工作,但每一次最浪费250毫秒。
无论如何,这可以做得更快吗?
通过htaccess重写也许?
目前有 index.php
<?php switch($_SERVER["HTTP_HOST"]){ case "site.org": header('HTTP/1.1 301 Moved Permanently'); header('Location: /en/home'); # extensio .php is hidden: 'home' is a file case "site.fr": header('HTTP/1.1 301 Moved Permanently'); header('Location: /fr/home'); # extensio .php is hidden: 'home' is a file etc etc ?>
我努力了
简单地包括home为第一个主页的作品漂亮, 但在浏览器中的url是不是设置为site.org/en/home你只是看到site.org和所有的链接,然后不再工作。 我需要的是,主页加载和浏览器中的url变成/xx/home
任何和所有的线索都非常赞赏+1
如果不检查自己,我猜想你会看到使用mod_rewrite会提高性能,因为Apache不需要调用PHP,而不必调用PHP来执行代码。
你可能想要的是这样的:
# Check for site.org/ RewriteCond %{REQUEST_URI} ^/$ RewriteCond %{HTTP_HOST} ^site.org$ RewriteRule ^/$ /en/home [RL] # Check for site.fr/ RewriteCond %{REQUEST_URI} ^/$ RewriteCond %{HTTP_HOST} ^site.fr$ RewriteRule ^/$ /fr/home [RL]
这是我的头顶,所以它可能不完全正确,但希望它会给你一个好主意,你可以做什么。 mod_rewrite的文档非常好,它在http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html 。
另一个(从Web服务器的angular度来看可能是最快的)方式是使用Apache VirtualHosts和RedirectPermament指令
NameVirtualHost *:80 <VirtualHost *:80> ServerName www.site.org ServerAlias site.org *.site.org <LocationMatch "^/$"> RedirectPermanent /en/home </LocationMatch> </VirtualHost> <VirtualHost *:80> ServerName www.site.fr ServerAlias site.fr *.site.fr <LocationMatch "^/$"> RedirectPermanent /fr/home </LocationMatch> </VirtualHost>