将所有外部请求重定向到相当于服务器url.htaccess的prod



我想说:

适用于不在110.140或110.10范围内的所有IP地址。如果他们试图访问以"stage."开头的URL,则将他们重定向到同一URL,但从URL中删除字符串的"stage.."部分。

RewriteCond %{REMOTE_ADDR} !^(110.(140|10)) [NC]
RewriteCond %{HTTP_HOST} ^stage. [NC]
RewriteRule stage.(.*) https://$1 [R=301,L]

当只使用爱制造的htaccess测试仪中的最后两行时,最后一行失败(不满足(。我还没有在服务器上测试过代码。

更新:

在阅读了Apache重写规则指令的详细信息后,我意识到重写规则指令不搜索HTTP_HOST,只搜索之后的内容。因此,这种方法是行不通的。有人有可行的方法吗?

看起来您的主机名以stage.开头,而不是以URI开头。您可以使用以下规则:

RewriteCond %{REMOTE_ADDR} !^110.(140|10)
RewriteCond %{HTTP_HOST} ^stage.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L,NE]

最新更新