我花了2个小时,但我无法弄清楚,也不知道如何用Google搜索解决方案。
这是我的.htaccess文件中的重写规则:
RewriteCond %{REQUEST_URI} ^/blog/(.*)
RewriteRule ^blog/(.*) http://localhost:2368/$1 [P]
当我调用example.com/blog时,它会将我重定向到运行在nodejs(端口2368)中的幽灵博客。
问题:博客本身使用绝对路径加载css和js文件:
<link rel="stylesheet" type="text/css" href="/assets/built/screen.css" />
。
因此它尝试加载example.com/assets/built/screen.css。
但是该文件可通过example.com/blog/assets/built/screen.css访问
我该如何解决?
答案 0 :(得分:4)
您有3种选择:
将链接/脚本源更改为/blog/assets/...
将文件位置更改为/assets
使用RewriteRule
.htaccess
RewriteCond %{REQUEST_URI} ^/assets(.*)\.(css|js)$
RewriteRule ^(.*) /blog/$1 [L]
RewriteCond %{REQUEST_URI} ^/blog/(.*)
RewriteRule ^blog/(.*) http://localhost:2368/$1 [P]
这是有效的规则:.htaccess tester
我假设文件是由apache2提供的,而不是由node.js中运行的ghost-blog
提供的。但是如果是后者,它将仍然有效,因为重定向后它将遵循下一条规则。但是您也可以执行以下操作:
RewriteCond %{REQUEST_URI} ^/assets(.*)\.(css|js)$
RewriteRule ^(.*) http://localhost:2368/$1 [L]