Rewrite for Subdomain with params

时间:2019-01-09 22:37:01

标签: .htaccess subdomain

I have tried a few examples of part of my question, but none would work either.

I want to use rewrite to change a url from ...

randomsub.domain.com/qwerty

to

domain.com/folder/index.php?domain=randomsub&id=qwerty

The examples I tried just for the subdomain part wouldnt work, as it would show Cant connect to server ...

Any assistance would be appreciated

1 个答案:

答案 0 :(得分:0)

如果您确实想在问题中进行内部重写,那么我认为这正是您要寻找的。另一种选择是 external 重定向,它也会更改浏览器中可见的URL。

通常,您首先需要在http服务器主机配置部分中配置默认​​主机。该主机必须响应您要响应的那些随机主机名(“子域”)的所有传入请求。在该默认主机内,您需要实现重写规则:

RewriteEngine on
RewriteCond %{QUERY_HOST} ^(.+)\.example\.com$
RewriteRule ^/?(.*)$ /folder/index.php?domain=%1&id=$1 [L]

该规则将在http服务器主机配置或动态配置文件(“ .htaccess”样式文件)中同样起作用。出于各种原因,您当然应该首选第一种选择。

关于此的一般说明:您应该始终喜欢将此类规则放置在http服务器主机配置中,而不要使用动态配置文件(“ .htaccess”)。这些动态配置文件增加了复杂性,通常是导致意外行为,难以调试的原因,并且确实降低了http服务器的速度。仅当您无法访问真正的http服务器主机配置(阅读:真正便宜的服务提供商)或坚持编写自己的规则的应用程序(这显然是安全的噩梦)时,才提供它们作为最后的选择。