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
答案 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服务器主机配置(阅读:真正便宜的服务提供商)或坚持编写自己的规则的应用程序(这显然是安全的噩梦)时,才提供它们作为最后的选择。