K. *_*ert 3 apache mod-rewrite url-rewriting
我有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>
Run Code Online (Sandbox Code Playgroud)
如您所见,两个容器中的规则相同.如何在单个容器中指定这些规则?起初我想过用这个:
<DirectoryMatch ^/srv/project/sites/(?:(?:admin\.project\.hu)|project\.hu)/htdocs/$>
...
</DirectoryMatch>
Run Code Online (Sandbox Code Playgroud)
但是,有没有办法以更清洁的方式做到这一点,我错过了?
编辑:我不喜欢DirectoryMatch方式,因为当我有更多目录时,正则表达式将变得不可维护.
将重写规则放入单独的文件中,例如.rewrite.conf
,并包括它
<Directory /srv/project/sites/project.hu/htdocs/>
Include rewrite.conf
</Directory>
<Directory /srv/project/sites/admin.project.hu/htdocs/>
Include rewrite.conf
</Directory>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3532 次 |
最近记录: |