我有一个apache网络服务器,我在那里发了一个htaccess。我切换到NGINX,我做了NGINX配置。我的重写如下:
location /mvc/public {
index index.php;
try_files $uri $uri/ @rewrite;
}
location @rewrite{
rewrite ^/mvc/public/(.*)$ /mvc/public/index.php?url=$1;
}
这可以正常工作但现在我想要的其他文件包含在我的索引文件中,如css和其他一些脚本会出错。
我得到的错误是:
GET "example.com"/mvc/public/javascript/show/css/bootstrap.min.css
GET "example.com"/mvc/public/javascript/show/css/simple-sidebar.css
GET "example.com"/mvc/public/javascript/show/css/custom.css
GET "example.com"/mvc/public/javascript/show/js/bootstrap.min.js
当我去“example.com”/ mvc / public / javascript / show / examplecode时。 css的正确路径是“example.com”/ mvc / public / css,js是“example.com”/ mvc / public / js
我在Apache中使用的HTACCESS是:
Options -MultiViews
RewriteEngine On
RewriteBase /mvc/public
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
所以我的问题是如何让这个工作以及我做错了什么?
答案 0 :(得分:1)
这根本不像重写问题。这看起来您的页面在其链接中具有相对URL。当你去:
/mvc/public/javascript/show/examplecode
相对网址为/mvc/public/javascript/show/
,所以当你有css时:
<link rel="stylesheet" href="css/custom.css" type="text/css">
(注意href中没有前导/
相对URL被附加到基数的末尾,使其成为:
/mvc/public/javascript/show/css/custom.css
因此,您需要将所有链接更改为绝对网址,或在页面标题中添加基础(在<head></head>
内):
<base href="/mvc/public/" />