用参数重写子域

Rewrite for Subdomain with params

我已经尝试了部分问题的几个示例,但 none 也可以。

我想使用重写将 url 从 ...

randomsub.domain.com/qwerty

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

我仅针对子域部分尝试的示例不起作用,因为它会显示无法连接到服务器...

如有任何帮助,我们将不胜感激

我认为这大致就是你要找的东西,如果你真的想在你的问题中写 internal 重写。另一种方法是 external 重定向,它也会更改浏览器中可见的 URL。

一般来说,您首先需要在 HTTP 服务器主机配置部分配置一个默认主机。该主机必须响应您想要响应的那些随机主机名 ("subdomains") 的所有传入请求。在该默认主机中,您需要实施重写规则:

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

该规则同样适用于 http 服务器主机配置或动态配置文件(“.htaccess”样式文件)。出于各种原因,您当然应该更喜欢第一个选项。

对此的一般性评论:您应该始终倾向于将此类规则放在 http 服务器主机配置中,而不是使用动态配置文件 (".htaccess")。那些动态配置文件增加了复杂性,通常是意外行为的原因,难以调试并且它们确实减慢了 http 服务器的速度。它们仅在您无法访问真正的 http 服务器主机配置(阅读:非常便宜的服务提供商)或坚持编写自己的规则(这是一个明显的安全噩梦)的应用程序的情况下作为最后的选择提供。