重定向通配符 URL 而不更改地址栏

Redirect wildcard URL without changing address bar

我有一个网站使用 Apple 通用 links 与他人分享应用程序事件。在未安装该应用程序的设备上打开一个事件 link 应该会显示一个允许用户下载它的站点,但它也应该保持地址不变。这样做的原因是,当在 Messenger 等应用程序中打开通用 link 时,也会显示此页面,其中会有一个标签,要求用户按“在 safari 中打开”。按下该按钮必须在 safari 中打开初始 link 才能正确打开应用程序。

网站看起来像这样:

www.website.com/event/<event_id_wildcard>

然后将向用户显示站点:

www.website.com/invite

同时在地址栏中保留初始 link。

我需要使用我的 .htaccess 文件来完成此操作,并且由于我不是自己托管服务器而是通过网络托管服务,因此很难更改任何更深层次的设置。

我尝试使用 RewriteEngine RewriteCond RewriteRule ,通过查看这些问题以及其他问题,但没有任何运气:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^/event/.*$
RewriteRule ^(.*)$ http://website.no/invite [P,NC,QSA]

这是一个相当紧迫的问题,我还没有时间了解各种标志

Redirect wildcard subdomains to subdirectory, without changing URL in address bar

How can I use htaccess to redirect paths with a wildcard character

https://gist.github.com/ScottPhillips/1721489

** 更新 **

完整的 .htaccess:

# Begin

RewriteEngine on

<Files "apple-app-site-association">
ForceType 'application/json'
</Files>

# Handle wildcard links
#RedirectMatch 301 ^/event/.*$ http://www.website.no/invite
RewriteRule ^event/[\w-]+/?$ invite [L,NC]

# Enforce SSL
# Handle non-www URLs
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^website\.no [NC]
RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Handle www URLs
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.website\.no [NC]
RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Handle URLs without .html extension
RewriteCond %{REQUEST_METHOD} ^(GET) [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.html -f
RewriteRule ^(.*) .html [L]

# End

这样说:

开始

RewriteEngine on

<Files "apple-app-site-association">
ForceType 'application/json'
</Files>

# Enforce SSL
# Handle non-www URLs
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

# Handle wildcard links
#RedirectMatch 301 ^/event/.*$ http://www.website.no/invite
RewriteRule ^event/[\w-]+/?$ invite [L,NC]

# Handle URLs without .html extension
RewriteCond %{REQUEST_METHOD} ^(GET) [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.html -f
RewriteRule ^(.*) .html [L]

# End

确保在测试时清除浏览器缓存