我有两个网站让说(example1.com和example2.com)。如果访问者在url中写入任何数字,例如(example1.com/123456),我希望它重定向到(example2.com/123456),所以域只替换而不是访问者写入的数字。我需要发生使用htaccess文件或任何简单的方法没有数据库或保存任何数据,因为我只有HTML页面,它很难我这样做,因为我还在学习。
o2rvlv0m1#
所有你需要的是一个协议层的重定向。这是可能的与所有常见的http服务器的,确切的解决方案取决于 * 哪个 * http服务器,你正在使用的服务域“example1.com“。由于您将问题标记为.htaccess和mod-rewrite,我假设您使用的是apache http服务器。如果是这样,您可以实现如下规则:
.htaccess
mod-rewrite
RewriteEngine on RewriteRule ^/?(\d+)$ https://example2.com%{REQUEST_URI} [R=301,L]
它会将所有到example1.com的请求重定向到第二个域,同时保留所请求的路径。外部重定向将使用http状态301(“永久移动”)作为对到example1.com的第一个请求的响应来执行。如果 * 两个 * 域都由同一个http服务器提供服务,而您 * 没有 * 设置单独的虚拟主机,则可能需要添加一个条件,以确保规则仅应用于对第一个域的请求:
example1.com
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服务器进程读取。
AllowOverride
DOCUMENT_ROOT
1条答案
按热度按时间o2rvlv0m1#
所有你需要的是一个协议层的重定向。这是可能的与所有常见的http服务器的,确切的解决方案取决于 * 哪个 * http服务器,你正在使用的服务域“example1.com“。
由于您将问题标记为
.htaccess
和mod-rewrite
,我假设您使用的是apache http服务器。如果是这样,您可以实现如下规则:它会将所有到
example1.com
的请求重定向到第二个域,同时保留所请求的路径。外部重定向将使用http状态301(“永久移动”)作为对到example1.com
的第一个请求的响应来执行。如果 * 两个 * 域都由同一个http服务器提供服务,而您 * 没有 * 设置单独的虚拟主机,则可能需要添加一个条件,以确保规则仅应用于对第一个域的请求:
最好在负责服务
example1.com
的中央http服务器的主机配置中实现这样的通用重定向规则。如果您 * 不 * 能够访问它,您确实可以使用 * 分布式 * 配置文件来代替,通常称为“.htaccess”。如果是这样的话,你需要事先使用AllowOverride
指令来启用该特性。配置文件需要位于主机的顶层DOCUMENT_ROOT
文件夹中,并且需要能够被http服务器进程读取。