我想了解是否可以根据 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 方面的更多帮助。