.htaccess 将访问者重定向到他/她在没有数据库的情况下编写的相同url

pcww981p  于 2022-12-04  发布在  其他
关注(0)|答案(1)|浏览(127)

我有两个网站让说(example1.com和example2.com)。
如果访问者在url中写入任何数字,例如(example1.com/123456),我希望它重定向到(example2.com/123456),所以域只替换而不是访问者写入的数字。
我需要发生使用htaccess文件或任何简单的方法没有数据库或保存任何数据,因为我只有HTML页面,它很难我这样做,因为我还在学习。

o2rvlv0m

o2rvlv0m1#

所有你需要的是一个协议层的重定向。这是可能的与所有常见的http服务器的,确切的解决方案取决于 * 哪个 * http服务器,你正在使用的服务域“example1.com“。
由于您将问题标记为.htaccessmod-rewrite,我假设您使用的是apache http服务器。如果是这样,您可以实现如下规则:

RewriteEngine on
RewriteRule ^/?(\d+)$ https://example2.com%{REQUEST_URI} [R=301,L]

它会将所有到example1.com的请求重定向到第二个域,同时保留所请求的路径。外部重定向将使用http状态301(“永久移动”)作为对到example1.com的第一个请求的响应来执行。
如果 * 两个 * 域都由同一个http服务器提供服务,而您 * 没有 * 设置单独的虚拟主机,则可能需要添加一个条件,以确保规则仅应用于对第一个域的请求:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(?:www.)?\.example1\.com$
RewriteRule ^/?(\d+)$ https://example2.com%{REQUEST_URI} [R=301,L]

最好在负责服务example1.com的中央http服务器的主机配置中实现这样的通用重定向规则。如果您 * 不 * 能够访问它,您确实可以使用 * 分布式 * 配置文件来代替,通常称为“.htaccess”。如果是这样的话,你需要事先使用AllowOverride指令来启用该特性。配置文件需要位于主机的顶层DOCUMENT_ROOT文件夹中,并且需要能够被http服务器进程读取。

相关问题