[英]secure php host name information - $_SERVER['HTTP_HOST'] alternative
[英]Is there an alternative to PHP's $_SERVER['HTTP_HOST']); for apache that does not require a full blown programming language (e.g. SSI)
我有一个简单的html页面,仅在两个地方使用PHP
<?php preg_replace('/(www\.)?([^.]*)\.(com|info)/', '${2}', $_SERVER['HTTP_HOST']); ?>
<?php echo $_SERVER['HTTP_HOST']); ?>
In页面被加载到多个域中,我只想将主机名显示为其他静态内容中的文本
我想完全消除对PHP的需求,但不想用另一个功能强大的编译器或解释器来代替它。 我想避免使用JavaScript。 我可以不进行正则表达式来获取第二级域名,但是仍然会喜欢该选项。 我可以通过比mod_php更简单的apache模块来执行此操作吗?
mod_php没什么问题,我只是在查看是否可以最大程度地减少我正在研究的该网站的需求。
我将mod_rewrite和SSI结合在一起。 使用mod_rewrite设置环境变量:
RewriteCond %{HTTP_HOST} ^(www\.)?([^.]*)\.(com|info)$
RewriteRule ^ - [L,E=HOST:%2]
然后使用以下命令在SSI中访问该信息:
<!--#echo var="HOST" -->
我没有测试过,您可能可以使用htaccess并进行如下重写:
RewriteRule (.*) $1?httm_host=%{HTTP_HOST} [L]
我不确定%{HTTP_HOST}变量是否可重写,但它可能有效。 您可能需要使用条件来检查? 在网址中。
JavaScript怎么样? 您只需要在网站上进行两个小更改即可轻松完成。 因此,您可以轻松地提供静态HTML文件。 要获取域,您可以使用:
var domain = window.location.hostname;
干杯,
编辑:要使用mod_rewrite:您将必须设置两个相同的HTML文件,每个文件中都包含正确的域。 然后,您可以通过
RewriteCond %{HTTP_HOST} .+\.com
RewriteRule index.html index.com.html [L]
RewriteCond %{HTTP_HOST} .+\.info
RewriteRule index.html index.info.html [L]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.