Php 我无法访问我的css&;使用重写url时的js文件
在使用“重写url”之前,请正确显示每个url 但当我使用“重写url”时Php 我无法访问我的css&;使用重写url时的js文件,php,css,url-rewriting,Php,Css,Url Rewriting,在使用“重写url”之前,请正确显示每个url 但当我使用“重写url”时 http://localhost/mgosoft/admin/userreg/ 请帮我解决这个问题,谢谢:)当您使用php时,只需使用$site\u addr=$\u SERVER['HTTP\u HOST'] 并将其附加到所有链接之前,如-> <link rel="stylesheet" type="text/css" href="<?php echo $site_addr; ?>css/sty
http://localhost/mgosoft/admin/userreg/
请帮我解决这个问题,谢谢:)当您使用php时,只需使用
$site\u addr=$\u SERVER['HTTP\u HOST']代码>
并将其附加到所有链接之前,如->
<link rel="stylesheet" type="text/css" href="<?php echo $site_addr; ?>css/style.css">
O-mkar几乎把它钉死了。您可以做的另一件事-如果您不想在整个项目中更改所有引用:使用另一个htaccess行(对于/css/
目录)自动将它们重写为正确的URL::
Thís将重写任何错误的url,如http://localhost/mode/movies/view/profile/css/style.css
到固定资源路径http://localhost/css/style.css
ofc<代码>本地主机
需要匹配正确的外部主机名
根据原始重写的通用性,您应该将资源路径排除在再次重写之外,否则将导致无限重写循环:
RewriteCond %{REQUEST_URI} !^/css/ [NC]
RewriteCond %{REQUEST_URI} !^/images/ [NC]
RewriteCond %{REQUEST_URI} !^/javascript/ [NC]
等等
根据您给出的示例,资源文件是
assets/css/themes/simple/style.css
您基本上需要说:将以该字符串结尾的任何内容重写到根文件夹。
因此,它将是:
RewriteCond %{REQUEST_URI} !^/assets/css/themes/simple/ [NC] #skip, if already rewritten
RewriteRule ^.*/assets/css/themes/simple/([^/]+)$ /assets/css/themes/simple/$1 [L, R=301]
您可以使用这个漂亮的页面来玩:
在上面的示例中输入请求urlhttp://localhost/mode/movies/assets/css/themes/simple/style.css
要查看,它将变成http://localhost/assets/css/themes/simple/style.css
ofc。您可以像这样对/assets/
的每个子文件进行环绕和重定向,这样就不需要为每个文件创建规则
注:如果您使用[L,R=301]
重定向资源,浏览器缓存也会工作,因为它会记住所请求文件的永久移动。-如果没有R=301,它会一直认为这是不同的文件。您也可以尝试此方法
对于您的本地版本,请添加
<base href="//localhost/mywebsite" />
到头部
对于您的实时版本,将其更改为
<base href="//your.domain.here" />
参考位于您可以使用base标记重写base,而无需更改相对路径,此处的文档->u此注释(如果有帮助;)@Omi这家伙是对的你也可以用这个method@dognose我的路径如下:assets/css/themes/simple/style.css我应该做什么change@Omi为此添加了一个示例。@dognose资产下不仅有一个css,还有许多css
<base href="//your.domain.here" />