修改重写(css/图像)
我使用以下命令重写我的URL:修改重写(css/图像),css,image,apache,mod-rewrite,Css,Image,Apache,Mod Rewrite,我使用以下命令重写我的URL: RewriteCond %{THE_REQUEST} \.html RewriteRule ^(.+)\.html$ /$1 [R=301,L] RewriteCond %{REQUEST_FILENAME}\.html -f RewriteRule ^(.+)$ $1.html 问题是这会导致css和图像不出现-有没有一种方法可以将规则从css和图像文件夹中排除,从而使这些规则按其应有的方式出现,而不是死掉的图像和没有css? 感谢天使xx最佳实践: 包含所有
RewriteCond %{THE_REQUEST} \.html
RewriteRule ^(.+)\.html$ /$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.+)$ $1.html
问题是这会导致css和图像不出现-有没有一种方法可以将规则从css和图像文件夹中排除,从而使这些规则按其应有的方式出现,而不是死掉的图像和没有css?
感谢天使xx最佳实践: 包含所有css/图像和js文件
绝对路径而不是相对路径应用
.htaccess
进行URL重写时。最佳实践:
包含所有css/图像和js文件
绝对路径而不是相对路径当您应用
.htaccess
进行URL重写时。将您的完整域放在css链接中:
<link rel="stylesheet" type="text/css" href="css/style.css" media="all" />
到
使用“重写url”时,您会得到以下目录:yoururl.com/dir/dir/item.html
使html中指向css文件的路径不正确
如果您想避免这种情况,最好使用css文件的完整路径。您的浏览器不理解您正在重写url,因此它认为您只是在浏览目录。将您的完整域放在css链接中:
<link rel="stylesheet" type="text/css" href="css/style.css" media="all" />
到
使用“重写url”时,您会得到以下目录:yoururl.com/dir/dir/item.html
使html中指向css文件的路径不正确
如果您想避免这种情况,最好使用css文件的完整路径。您的浏览器不理解您正在重写url,因此它认为您只是在浏览目录。试试看
RewriteCond %{REQUEST_URI} \.html$
RewriteRule ^(.*)\.html$ $1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !/(css|images|js)/
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
用文件夹名替换css | images | js
,并用|
希望这有助于……试试看
RewriteCond %{REQUEST_URI} \.html$
RewriteRule ^(.*)\.html$ $1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !/(css|images|js)/
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
用文件夹名替换css | images | js
,并用|
希望这有助于…您可以更改
<link rel="stylesheet" type="text/css" href="css/style.css" media="all" />
到
“/”作为主机上的根目录。与“/image/…”类似
希望这有助于…您可以更改
<link rel="stylesheet" type="text/css" href="css/style.css" media="all" />
到
“/”作为主机上的根目录。与“/image/…”类似
希望这能有所帮助……不幸的是,这与此无关。我以前从未做过类似的事情。你能解释一下你的答案吗?为什么必须这样做?@wesley他正在使用
[R=301,L]
这就是为什么?不管怎么说,这是最好的实践,但我认为这不是一个要求,重写规则可以被修正。第一个问题看起来有些不对劲,但也许是我缺乏理解。编辑:事后看来,我总是使用/absolute/path
,这就解释了为什么我从来没有遇到过问题:D谢谢!不幸的是,这与此无关。我以前从未做过类似的事情。你能解释一下你的答案吗?为什么必须这样做?@wesley他正在使用[R=301,L]
这就是为什么?不管怎么说,这是最好的实践,但我认为这不是一个要求,重写规则可以被修正。第一个问题看起来有些不对劲,但也许是我缺乏理解。编辑:事后看来,我总是使用/absolute/path
,这就解释了为什么我从来没有遇到过问题:D谢谢!类似问题:看起来像第二个RewriteCond
中的类型。在\.html
之前是否应该有一个空格?能否显示一个不起作用的CSS URL?当您在浏览器中打开它时会发生什么?类似的问题:看起来像第二个RewriteCond
中的类型。在\.html
之前是否应该有一个空格?能否显示一个不起作用的CSS URL?当你在浏览器中打开它时会发生什么?这真的有必要吗?你能解释一下吗?当使用“重写url”时,你会得到目录:yoururl.com/dir/dir/item.html,这使得html中指向css文件的路径不正确。所以最好的方法是设置css文件的完整路径来避免这种情况。这真的有必要吗?你能解释一下吗?当使用“重写url”时,你会得到目录:yoururl.com/dir/dir/item.html,这使得html中指向css文件的路径不正确。因此,最好的方法是设置css文件的完整路径以避免这种情况。