.htaccess屏蔽目录(带或不带斜杠)

.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

我试图用一些静态html内容屏蔽目录,简单示例如下:
重写规则^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