一个配置中可以有两个目录重写规则吗?

一个配置中可以有两个目录重写规则吗?

在 /etc/httpd/conf.d 的自定义conf文件中,您有多个站点和数据库,但在非根文件夹中安装了不同的系统,您是否可以声明多个重写规则,如下所示?我收到错误,没有读取 xml 来安装 joomla 扩展,并且在 tmp 文件夹中找不到它,即使权限和所有权是正确的,所以认为它一定是 conf 文件设置。我不使用.htaccess。然而,如果我通过系统安装扩展安装扩展,它就可以工作。

<Directory /var/www/html/folder1>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_URI} ^/(.*)$
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^index.php [L]

</Directory>

   <Directory /var/www/html/folder2>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_URI} ^/(.*)$
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^index.php [L]

</Directory>

答案1

这是一个完全有效的配置,尽管您可以通过使用DirectoryMatch或包含文件来简化它,因为每个文件中的代码都是相同的

<DirectoryMatch "^/var/www/html/(folder1|folder2)">
   ...
</DirectoryMatch>

相关内容