Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess htaccess将二级主机名转换为参数_.htaccess - Fatal编程技术网

.htaccess htaccess将二级主机名转换为参数

.htaccess htaccess将二级主机名转换为参数,.htaccess,.htaccess,我想使用htaccess文件将二级域名转换为一些url参数,如下所示: us.mydomain.com 到 我想要的是先进行转换,然后应用当前规则。以下是我当前的htaccess文件: RewriteEngine On # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301] # Handle Front Contro

我想使用htaccess文件将二级域名转换为一些url参数,如下所示:

us.mydomain.com

我想要的是先进行转换,然后应用当前规则。以下是我当前的htaccess文件:

RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
有人能帮我了解htaccess规则吗?
谢谢

我认为在php中评估
$\u SERVER['HTTP\u HOST']
变量会更容易,但这可能是您在HTTP服务器级别上所寻找的:

RewriteEngine On
# Append host name as country argument
RewriteCond %{QUERY_STRING} !^country=
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^([^\.]+)\.example\.com$
RewriteRule ^ %{REQUEST_URI}?country=%1 [QSA]


还有一个一般提示:您应该始终希望将此类规则放置在http服务器(虚拟)主机配置中,而不是使用动态配置文件(
.htaccess
样式文件)。这些文件是出了名的容易出错,难以调试,而且它们确实降低了服务器的速度。只有在您无法控制主机配置的情况下(阅读:非常便宜的主机服务提供商),或者如果您的应用程序依赖于编写自己的重写规则(这显然是一个安全噩梦),才提供它们作为最后一个选项。

抱歉,但目前尚不清楚您希望如何将现有的重写和期望的重写结合起来。必须将获取参数(
countr=us
)的ODE添加到所有请求中,或仅添加到第一个请求中,以便将其存储在内部会话中?我想转换与[country].mydomain.com匹配的所有请求。当然,您已经说过了。但这并没有回答我的问题…嗨,阿卡斯卡,仍然没有明白你的意思,让我更容易,PHP不关心请求哪个域,只添加参数对我来说就足够了。[country].mydomain.com到[country].mydomain.com?country=[country]首先,将第二个域转换为参数,然后应用当前规则。您是对的,最好使用PHP来处理主机问题,无论如何,根据您的示例,我确实学会了如何在htaccess文件中编写规则。谢谢!
RewriteEngine On
# Append host name as country argument
RewriteCond %{QUERY_STRING} !^country=
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^([^\.]+)\.example\.com$
RewriteRule ^ %{REQUEST_URI}?country=%1 [QSA]