我有一个与 php 和 htaccess 相关的简单问题。
想想我有这个 php 代码:
if(isset($_GET['word'])) {
echo $_GET['word'];
}
所以我会有这个(例如):
example.com/?word=test
回显出 **test**
的代码,所以我的问题是,
如何将 $_GET 值更改为虚拟子域?
例如,如果打开以下地址,我想要这个:
test.example.com
然后代码运行并回显 **test**
。
我需要一个 htaccess 代码来做这件事,那么,我该如何使用 htaccess 来做呢?
我已经尝试了一些代码,但我无法得到结果。
最佳答案
您可以在您的 DOCUMENT_ROOT/.htaccess
文件中使用此代码:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^([^.]+) [NC]
RewriteCond %{QUERY_STRING} !(?:^|&)word=[^&]+(?:&|$) [NC]
RewriteRule ^ %{REQUEST_URI}?word=%1 [QSA,L]
%1
是对该行中捕获的值的反向引用:RewriteCond %{HTTP_HOST} ^([^.]+) [NC]
这是第一部分DOT 前的域名。
关于使用 Htaccess 将 php $_GET 项目添加到虚拟子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26191072/