.htaccess屏蔽目录(带或不带斜杠)
我试图用一些静态html内容屏蔽目录,简单示例如下:.htaccess屏蔽目录(带或不带斜杠),.htaccess,directory,masking,.htaccess,Directory,Masking,我试图用一些静态html内容屏蔽目录,简单示例如下: 重写规则^something/?$sub\u目录/something/ 现在,当用户遵循类似ulr的 www.example.com/something/ 一切正常,静态页面通过css和图像从sub_目录/something加载。但当用户遵循如下url:www.example.com/something(不带尾随斜杠)时,应用程序返回404错误 我做错了什么 我试过: RewriteRule^something(.*)子目录/somethin
重写规则^something/?$sub\u目录/something/
现在,当用户遵循类似ulr的
www.example.com/something/
一切正常,静态页面通过css和图像从sub_目录/something
加载。但当用户遵循如下url:www.example.com/something
(不带尾随斜杠)时,应用程序返回404错误
我做错了什么
我试过:
RewriteRule^something(.*)子目录/something/$1
但这样,只加载html内容,而不加载任何js、css或图像文件。您的规则如下:
RewriteEngine On
RewriteRule ^(?:js|css|images)/.+$ sub_directory/something/$0 [L,NC]
RewriteRule ^something(?:/.*)?$ sub_directory/$0 [L,NC]
并将其添加到页面HTML的
部分下方:
<base href="/sub_directory/something/" />
因此,每个相对URL都是从基本URL解析的,而不是从当前页面的URL解析的。路径将是
子目录/something/css
,子目录/something/images
和子目录/something/js
等。js和css也有缩小的文件。在html中,路径是images/image.jpg
等。这些css是如何包含在html中的?你能分享一个例子吗?这将是一个来自html的css例子:
和js
,这样我得到一个404错误,像这样请求的URL/sub\u目录/something/something/
,这两种情况下,都有或没有尾部斜杠。效果很好:)这解决了我的问题,但我必须知道(这件事让我头痛了一段时间),有没有办法在不更改html文件的情况下使其正常工作?我会得到www.domain.com/images/image.jpg
,css和js文件也是如此。它正常工作,但这对我来说是个问题。我无法重写任何css、img或js文件。这是一个多站点应用程序,根目录中有图像、js和css目录但是,我确实将base
标记的href
值更改为“/something/”
,而不是使用此重写规则重写规则^something(.*)sub_目录/something/$1
在这两种情况下都可以使用,有无尾随斜杠。当我将?:/
添加到混合目录中时,它只会将我重定向到example.com/sub_目录/something/
。如果我知道原因,我会被诅咒。在任何情况下,
都是我推荐给这种情况下的首选解决方案。还要注意RewriteRule^something(?:/.*)?$sub_directory/$0[L,NC]
几乎相同,但更安全,因为^something(.*)
也将匹配something123
或something