.htaccess 多站点,一台主机使用htaccess。需要创建一个图像文件夹重写

.htaccess 多站点,一台主机使用htaccess。需要创建一个图像文件夹重写,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我有一个运行多个站点的主机帐户,masterhost.com。在masterhost.com下,我有site1.com、site2.com等。。。我在masterhost目录中使用这段代码将域请求从masterhost目录重新路由到site1目录 RewriteCond %{HTTP_HOST} ^(www.)?site1.com$ RewriteCond %{REQUEST_URI} !^/site1/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCo

我有一个运行多个站点的主机帐户,masterhost.com。在masterhost.com下,我有site1.com、site2.com等。。。我在masterhost目录中使用这段代码将域请求从masterhost目录重新路由到site1目录

RewriteCond %{HTTP_HOST} ^(www.)?site1.com$
RewriteCond %{REQUEST_URI} !^/site1/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /site1/$1/
RewriteCond %{HTTP_HOST} ^(www.)?site1.com$
RewriteRule ^(/)?$ site1/index.php
但是,site1.com上的Joomla对此有一些问题,正在将默认图像路径路由回masterhost.com/images


我是否可以使用重写来识别任何请求并将其写入?

我认为问题在于这两行:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
基本上,如果mainsite.com上存在映像,这些规则将阻止请求重定向到site1。因此,例如,如果您有mainsite.com/img/logo.png和site1.com/img/logo.png,site1.com将显示mainsite.com的徽标

此外,根据该规则:

RewriteRule ^(.*)$ /site1/$1/
我不认为后面的斜杠应该在那里

最后,你没有问,但最后一条规则可能也不起作用?如果是这样,请删除-f和-上面的d检查将破坏它。这是因为如果用户请求site1.com/,第一条规则会将其重定向到/site1/,这将永远不会与规则
^(/)?$
匹配。因此,该规则需要更改为:

RewriteRule ^site1(/)?$ site1/index.php
在该规则中,^和site1之间可能需要斜杠,也可能不需要斜杠,具体取决于RewriteBase指令