用参数重写子域
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 服务器主机配置(阅读:非常便宜的服务提供商)或坚持编写自己的规则(这是一个明显的安全噩梦)的应用程序的情况下作为最后的选择提供。
我已经尝试了部分问题的几个示例,但 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 服务器主机配置(阅读:非常便宜的服务提供商)或坚持编写自己的规则(这是一个明显的安全噩梦)的应用程序的情况下作为最后的选择提供。