我有一个网站foo.com
在 WordPress 上,我想这样做foo.com/mexico
, foo.com/venezuela
, 交货期不同/server
对于具有相同域的每个城市(没有 WordPress 多站点)。
我不是要求按城市检测 ip,而是要求服务器和/或域/dns 配置来执行此操作。
我知道还有其他方法可以实现这一目标,但想了解这个。
这是一个例子:
http://www.vice.com/pt_br http://www.vice.com/pt_br
http://www.vice.com/es_co http://www.vice.com/es_co
编辑解决方案
这是我的解决方案:
- 创建一个子域 example.foo.com 指向另一台服务器。
- 在主服务器上创建一个文件夹,名称为我想要的
链接,例如“墨西哥”
-
在此文件夹内创建了一个 .htaccess:
重写引擎开启
RewriteCond %{REQUEST_URI} ^/墨西哥
RewriteRule ^(.*)$ http:// 示例。富。 com/$1 [R=301,L,P
这对我有用。如果我想要另一个/server
我只是用另一个名字重复一遍,例如“委内瑞拉”。子域名将被 .htaccess 隐藏,并且此“example.foo.com”将类似于“foo.com/venezuela”。
你所描述的是一个反向代理 http://en.wikipedia.org/wiki/Reverse_proxy.
You can使用 apache 的扩展 mod_proxy 进行设置。就我个人而言,我还没有触及这一点,但我固执己见的答案是建议你看看nginx http://nginx.com/。这是一个非常简单的反向代理。您可以轻松地在 apache 前面运行 nginx,拦截请求并将它们传递到不同的服务器,或者直接发送 html 文件。
nginx-config 可以简单如下:
server {
listen 80;
server_name example.org www.example.org;
location /mexico/ {
# We could have an apache server running on another port...
proxy_pass http://127.0.0.1:8000;
}
location /venezuela/ {
proxy_pass http://123.123.123.123:8000; # ...or another server.
}
location /bulgaria/ {
# Or just serve some static files
# In apache, do you set up a virtual host for this? christ.
root /var/www/static_html;
# If static html is all you have, what is apache even doing
# on your server? Uninstall it already! (As I said; opionated!)
}
}
编辑:几年后找到我自己的答案,我想补充一点,OP选择使用的301重写规则添加了浏览器的另一个请求must在重定向到真实地址之前等待。时至今日,301 请求仍然被认为是糟糕的 SEO,并且会增加一些(通常是较小的)加载时间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)