![一个配置中可以有两个目录重写规则吗?](https://linux22.com/image/59201/%E4%B8%80%E4%B8%AA%E9%85%8D%E7%BD%AE%E4%B8%AD%E5%8F%AF%E4%BB%A5%E6%9C%89%E4%B8%A4%E4%B8%AA%E7%9B%AE%E5%BD%95%E9%87%8D%E5%86%99%E8%A7%84%E5%88%99%E5%90%97%EF%BC%9F.png)
在 /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>