根据 URL 字符串参数从不同的目录提供网站服务

根据 URL 字符串参数从不同的目录提供网站服务

我想了解是否可以根据 URL 字符串参数提供两个不同版本的网站。

例子:

  • 我的服务器上有两个安装:example.com/website-1/example.com/website-2/
  • 如果最终用户访问example.com/main/?showads=yes—> 提供网站example.com/website-1/
  • 如果最终用户访问域名example.com/main/—> 从example.com/website-2/

笔记:这不是重定向问题,我只是想使用相同的 URL 提供服务。

附言我在 Apache 服务器上运行 WordPress 网站。

我愿意接受通过 PHP、WordPress 或 Apache ( .htaccess) 配置的任何解决方案。

答案1

您可以在根文件的顶部执行必要的内部重写.htaccess。例如:

RewriteEngine On

RewriteCond %{QUERY_STRING} ^showads=yes$
RewriteRule ^main/$ /website-1/index.php [L]

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^main/$ /website-2/index.php [L]

如果用户请求/main/?showads=yes(完全按照所述),则请求将被路由到 中的 WordPress 安装/website-1/,如果用户请求/main/(完全按照 - 没有查询字符串),则请求将被路由到 中的 WP 安装/website-2/。(注意:您应该直接重写为index.php,而不是让 mod_dir 发出二次内部子请求。)

但是,由于这是 WordPress,WP 本身也需要配置为接受/main/两个网站的请求(即,这必须是 WP 中的有效 URL),否则,WP 将触发 404。

您可以考虑在WordPress 堆栈以获得有关 WP 方面的更多帮助。

相关内容