Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
修改重写(css/图像)_Css_Image_Apache_Mod Rewrite - Fatal编程技术网

修改重写(css/图像)

修改重写(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最佳实践: 包含所有

我使用以下命令重写我的URL:

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文件的完整路径以避免这种情况。