使用.htaccess重定向后无法显示图片,CSS失效,该如何处理

2019-11-12 02:56:39

参考地址  使用.htaccess重定向后无法显示图片,CSS失效,该如何处理

RewriteRule !\.(js|ico|gif|jpg|png|css)$ /wp/$1

<IfModule mod_rewrite.c> RewriteEngine On 

RewriteCond %{HTTP_HOST} ^(www\.)?mydomain\.org$ 
RewriteCond %{REQUEST_URI} !^/wp/ RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /wp/$1 RewriteCond %{HTTP_HOST} ^(www\.)?mydomain\.org$ 
RewriteRule ^(/)?$ wp/index.php [L] RewriteCond %{HTTP_HOST} ^(bbs\.)?mydomain\.org$ 
RewriteCond %{REQUEST_URI} !^/bbs/ RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /bbs/$1 RewriteCond %{HTTP_HOST} ^(bbs\.)?mydomain\.org$ 
RewriteRule ^(/)?$ bbs/index.php [L] RewriteCond %{HTTP_HOST} ^(blog\.)?mydomain\.org$ 
RewriteCond %{REQUEST_URI} !^/blog/ RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /blog/$1 RewriteCond %{HTTP_HOST} ^(blog\.)?mydomain\.org$ 
RewriteRule ^(/)?$ blog/index.php [L] </IfModule> 12345678910111213141516171819202122232425262728

现在我需要把这个域名泛解析到blog目录(*.mydomain.org),同时保持另外两个目录的解析不变。尝试对最后一段作以下修改后(前面的内容不变),出现问题:另两个目录中的网站内的图片无法显示,CSS全部失效。
修改如下:

RewriteCond %{HTTP_HOST} ^(.*\.)?mydomain\.org$ 
RewriteCond %{REQUEST_URI} !^/blog/ RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /blog/$1 RewriteCond %{HTTP_HOST} ^(.*\.)?mydomain\.org$ 
RewriteRule ^(/)?$ blog/index.php [L] 1234567

各目录下安装的程序分别为:

\bbs  Discuz
\blog Supersite+S-Space
\wp   WordPress123

------解决方案--------------------
给你一个例子,其他同理,你参考一下

RewriteRule !\.(js|ico|gif|jpg|png|css)$ /wp/$1RewriteRule ^(.*)$ /wp/$1


  • 2019-02-15 10:36:45

    将MP4转成m3u8

    网上很多垃圾文章推荐segmenter工具,但用的时候,3.5G的ts文件丢了一半的数据,于是想到了ffmpeg转。

  • 2019-02-19 10:01:55

    node下使用open模块在指定浏览器下打开url

    最近在做一个项目的过程中,得到一个远程二维码图片的url,需要扫码登录,每次都是在控制台发url打印出来,再复制粘贴到浏览器的地址栏中打开扫码,整个过程过于繁琐,于是想找一个模块,直接在node下,指定浏览器打开该图片。这样可以省不少事。

  • 2019-02-24 09:47:09

    解决Node.js的命令行输出中文乱码问题(也适用于Electron)

    ​一般我们的js文件都是试用utf8编码保存的,但是中文windows的命令行一般默认使用cp936编码(就是gbk),这样我们用js代码 console.log('中文');输出日志的时候,会发现输出的是乱码。 网上有提供一些解决方案,典型的就是用iconv或iconv-lite,把这些中文字符串先转成gbk再输出。 但是这个方案我试了多次,在win10的命令行下,utf8的字符串是成功转成了gbk字符串了(通过打印Buffer可以见到),但是输出还是乱码。