我尝试使用# config.yml file: (or services.yml)
app_zabbix_detect.detector:
class: AppBundle\Services\ZabbixDetector # real test
来实现,因此我可以使用一个虚拟主机设置的配置和hosts文件中定义的一个URL来访问我的所有项目。这将允许我删除文件夹中的项目,它将在不让我做任何其他配置的情况下运行,并且在工作时节省了大量时间。
示例A:.htaccess
托管在prestige.projects.dev
等
示例B:D:/projects/prestige
上托管了newproject.projects.dev
下面的代码适用于示例A的具体情况,但我无法弄清楚如何使其动态地“动态”运行。对于所有项目。我的目标是让D:/projects/newproject
成为通配符。例如:prestige
应自动加载newproject.projects.dev
的内容。
D:/projects/newproject
只要达到目标,我就可以接受除此方法之外的其他建议。
答案 0 :(得分:2)
请尝试以下内容:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^([a-z]+)\.projects\.dev [NC]
RewriteCond "%{REQUEST_URI} /%1" !^(/[^/]+)[^\s]*\s\1$
RewriteRule (.*) /%1/$1 [L]
%1
是对最后匹配的 CondPattern 中捕获的组的反向引用。
第二个RewriteCond
指令是"通配符"硬编码检查的版本,以确保REQUEST_URI
尚未从与子域匹配的目录开始 - 从而防止重写循环。
字符串%{REQUEST_URI} /%1
(在第一次重写后扩展为表格&#34; /<directory>/<anything> /<subdomain>
&#34;的字符串)与正则表达式^(/[^/]+)[^\s]*\s\1$
匹配,后者检查查看/<directory>
是否与/<subdomain
相同(\1
是正则表达式中捕获的组的内部反向引用)。只有在不匹配时才会发生RewriteRule
替换 - 与您当前规则的工作方式相同。