我在wordpress上有一个foo.com网站,我想这样做foo.com/mexicofoo.com/venezuela,为具有相同域的每个城市(没有wordpress多站点)提供不同的/server

我不是要按城市检测ip,而是要通过服务器和/或域/dns配置来检测IP。

我知道还有其他方法可以完成此操作,但想了解这一方法。

这是一个例子:

http://www.vice.com/pt_br

http://www.vice.com/es_co

编辑解决方案

这是我的解决方案:

  • 创建一个指向另一个服务器的子域example.foo.com。
  • 在主服务器上用我想要的名称创建一个文件夹
    链接,例如'mexico'
  • 在此文件夹内创建了一个.htaccess:

    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/

    10-12 00:16
    查看更多