gpt4 book ai didi

apache - Apache 中多个目录的规则相同吗?

转载 作者:行者123 更新时间:2023-12-03 23:32:55 27 4
gpt4 key购买 nike

我有 2 个使用相同规则的子域,如下所示:

<Directory /srv/project/sites/project.hu/htdocs/>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php?route=$1 [L,QSA]
SetEnv config default,local
Order allow,deny
allow from 192.168.0.0/16
</Directory>

<Directory /srv/project/sites/admin.project.hu/htdocs/>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php?route=$1 [L,QSA]
SetEnv config default,local
Order allow,deny
allow from 192.168.0.0/16
</Directory>

如您所见,两个容器中的规则相同。
如何在单个容器中指定这些规则?
起初我想用这个:
<DirectoryMatch ^/srv/project/sites/(?:(?:admin\.project\.hu)|project\.hu)/htdocs/$>
...
</DirectoryMatch>

但是,难道没有一种方法可以以我所缺少的更干净的方式做到这一点吗?

编辑:
我不喜欢 DirectoryMatch 方式,因为当我拥有更多目录时,正则表达式将变得无法维护。

最佳答案

将重写规则放入一个单独的文件中,例如。 rewrite.conf , 和 include它喜欢这样

<Directory /srv/project/sites/project.hu/htdocs/>
Include rewrite.conf
</Directory>

<Directory /srv/project/sites/admin.project.hu/htdocs/>
Include rewrite.conf
</Directory>

关于apache - Apache 中多个目录的规则相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/688100/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com