我知道HttpRewriteModule,但我真的不知道如何处理正则表达式,我需要将某个目录中的所有 URL 重定向到另一个目录,特别是
example.com/component/tag/whatever
Run Code Online (Sandbox Code Playgroud)
到
example.com/tag/whatever
Run Code Online (Sandbox Code Playgroud)
有人能告诉我如何在 Nginx 中做到这一点吗?
我有一个基于 Linode 1024 VPS 的网络服务器
还有一些基于 WordPress 3.3.1 的博客。其中之一是一个简单的博客,带有默认配置、主题和“Hello World”帖子,用于测试服务器。另一个是从其他服务器克隆的博客,有近 10k 个帖子和超过 10k 条评论。这个博客每天有大约 5k 个唯一身份。
服务器在测试博客的 ab 测试上给出了很好的数字,但与克隆博客相同的测试是不可能的:ab 测试负载服务器太多,我不得不停止该过程,这无论如何使 ab 显示这真是糟糕的结果。
htop 在正常操作时也显示“正常”负载,但在 ab 测试期间显示正常的大负载。
还有一件奇怪的事情发生了(对我来说最重要):第一个字节的时间非常高,但在那之后等待网站加载速度非常快。这可以使用 tools.pingdom.com 等服务轻松测试,从而得出此结果。请注意表示“等待时间”的黄色区域。
为什么会这样?可能的想法:
如果有人需要更多信息,
我有一台服务器在 Linode 上运行,Ubuntu 10.04 LTS、Nginx 0.7.65、MySQL 5.1.41 和 PHP 5.3.2 和 PHP-FPM。
上面有一个 WordPress 博客,最近更新到 WordPress 3.2.1。
我没有对服务器进行任何更改(除了更新 WordPress),虽然它运行良好,但几天前我开始出现停机时间。
我试图解决这个问题,并检查了 error_log 我看到了许多似乎与超时有关的超时和消息。服务器当前正在记录此类错误:
2011/07/14 10:37:35 [warn] 2539#0: *104 an upstream response is buffered to a temporary file /var/lib/nginx/fastcgi/2/00/0000000002 while reading upstream, client: 217.12.16.51, server: www.example.com, request: "GET /page/2/ HTTP/1.0", upstream: "fastcgi://127.0.0.1:9000", host: "www.example.com", referrer: "http://www.example.com/"
2011/07/14 10:40:24 [error] 2539#0: *231 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 46.24.245.181, server: www.example.com, request: "GET / HTTP/1.1", …Run Code Online (Sandbox Code Playgroud) 我需要重定向所有流量
http://subdomain.domain.com/
Run Code Online (Sandbox Code Playgroud)
到
http://subdomain.domain.com/folder/
Run Code Online (Sandbox Code Playgroud)
当然,“文件夹”是一个特定的文件夹。我试过这个:
RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com$
RewriteRule ^.*$ http://subdomain.domain.com/folder/ [L]
Run Code Online (Sandbox Code Playgroud)
但它不起作用。怎么了?
我有一个网站,需要针对两种不同的国家/地区/语言至少提供两个几乎相同的版本,并且访问者应该根据他们的位置、国家/地区或语言访问一个或另一个(实际上,就我而言,最佳答案是按国家/地区重定向)。
网络服务器是 Apache,我已经阅读了一些关于GeoIP Apache API 的内容,但我不确定如何将它(一些简短的说明将不胜感激)应用于我的 Apache 安装,以及如何从那里重定向一个版本或另一个取决于访问者的位置(据我所知是通过访问者的 IP 猜测的)。
我想知道浏览器的语言是否可以在这里使用,并根据语言代码(en_US、es_ES 等)重定向到每个版本。
是否有解决方案(如果可能,免费,但也会考虑商业解决方案)?
我在 ServerFault 上看到过这个上一个问题,我想要类似的东西,但我不确定如何完成它。
我想要的是从永久链接中删除所有斜杠,除了域名后面的斜杠。例如:
http://www.muycomputerpro.com/Actualidad/Especiales/La-Ciudad-Eficiente-Netapp
将被重定向到
http://www.muycomputerpro.com/ActualidadEspecialesLa-Ciudad-Eficiente-Netapp
我需要它来纠正Apache Web 服务器下我的 WordPress 博客上剩余的一些 404 错误。那么,正确的重写规则是什么?
apache-2.2 ×3
nginx ×3
wordpress ×3
php-fpm ×2
redirect ×2
country ×1
domain ×1
geolocation ×1
ip ×1
mod-rewrite ×1
permalinks ×1
redirection ×1
rewrite ×1
subdomain ×1
timeout ×1
varnish ×1