我在wordpress上有一个foo.com
网站,我想这样做foo.com/mexico
,foo.com/venezuela
,为具有相同域的每个城市(没有wordpress多站点)提供不同的/server
。
我不是要按城市检测ip,而是要通过服务器和/或域/dns配置来检测IP。
我知道还有其他方法可以完成此操作,但想了解这一方法。
这是一个例子:
http://www.vice.com/pt_br
http://www.vice.com/es_co
编辑解决方案
这是我的解决方案:
链接,例如'mexico'
RewriteEngine开启
RewriteCond%{REQUEST_URI} ^/墨西哥
RewriteRule ^(。*)$ http://示例。 foo。 com/$ 1 [R = 301,L,P
这对我有用。如果我想要另一个
/server
,请重复另一个名称,例如“委内瑞拉”。子域名将由.htaccess隐藏,并且此“example.foo.com”将类似于此“foo.com/venezuela”。 最佳答案
您所描述的是reverse proxy。
您可以使用apache的扩展名mod_proxy进行设置。就我个人而言,我没有碰过它,但是我的自以为是的回答是建议您看看nginx。这是一个简陋的简单反向代理。您可以轻松地在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重写规则会添加另一个请求,浏览器在重定向到真实地址之前必须等待该请求。到目前为止,301请求仍然被认为是不好的SEO,并增加了一些(通常是次要的)加载时间。
关于php - 如何使具有相同域的不同/servers?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30542389/