mod_rewrite apache FQDN为主机名

olhwl3o2  于 2023-02-13  发布在  Apache
关注(0)|答案(1)|浏览(126)

我试图找到一个mod_rewrite代码,强制用户去FQDN被重写为主机名没有域,不希望他们被困在一个循环。我只能找到重写的例子反过来。任何人都有一个建议,我如何才能做到这一点?
例如,如果我去http://appname.example.com/test.php
重写的URL应为http://appname/test.php
任何建议都很好。

ergxz8rk

ergxz8rk1#

要将http://<appname>.example.com/<url-path>“重定向”到http://<appname>/<url-path>(其中<appname><url-path>是完全可变的,并且<appname>也是本地网络上的可解析主机名),您需要在根.htaccess文件的顶部使用mod_rewrite执行以下操作:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(?!www\.)([a-z-]+)\.example\.com [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=302,L]

这将使用负前瞻排除www子域。

  • substitution* 字符串中的%1是对从请求的 hostname 捕获的<appname>的反向引用。

%{REQUEST_URI}包含完整的根相对URL路径(以斜杠开头)。
这也处理FQDN(以点结尾)。

相关问题