使用.htaccess将子目录设置为根目录

发布于 2025-01-08 00:46:35 字数 1459 浏览 1 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

巨坚强 2025-01-15 00:46:35

如果您想保留 'href="/css/layout.css"' 部分,那么可以,您可以设置重写规则。您只需小心不要重定向以 /testsite 开头的任何内容(否则您将最终陷入循环)。

就像(在 root .htaccess 中):

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/testsite/.*$
RewriteRule ^(.*)$ /testsite/$1 [QSA,L]

在那里,您将能够从以下位置访问您的 layout.css 文件:

http://localhost/ testsite/css/layout.css

http://localhost/css/layout.css

If you want to keep the 'href="/css/layout.css"' part, then yes, you can set up a rewrite rule. You just have to be careful not to redirect anything starting with /testsite (or you'll end up with a loop).

Like (in root .htaccess):

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/testsite/.*$
RewriteRule ^(.*)$ /testsite/$1 [QSA,L]

There, you will be able to access your layout.css file either from:

http://localhost/testsite/css/layout.css

or

http://localhost/css/layout.css

妄司 2025-01-15 00:46:35

当然,所有相对 URI(如您的)都是相对于基本 URI 的,默认情况下,基本 URI 是文档的 URI:

http://localhost/testsite/index.php

您只需要告诉要添加哪一部分:

<link rel="stylesheet" type="text/css" href="./css/layout.css" />
                                             ^
                                             ` see this dot

示例:

Base URI      ::  http://localhost/testsite/index.php
Relative URI  ::  ./css/layout.css
Result        ::  http://localhost/testsite/css/layout.css

如果您需要更加模块化,有多种方法这样做。一种是在 HTML 文档中显式设置基本 URI(请参阅 )。

另一种方法是根据请求 URI 和站点的根路径在服务器端相对解析链接。有关示例,请参阅此答案

Sure, all relative URIs (as yours) are relative to the base URI which by default is the URI of the document:

http://localhost/testsite/index.php

You only need to tell which part to add:

<link rel="stylesheet" type="text/css" href="./css/layout.css" />
                                             ^
                                             ` see this dot

Example:

Base URI      ::  http://localhost/testsite/index.php
Relative URI  ::  ./css/layout.css
Result        ::  http://localhost/testsite/css/layout.css

If you need to have this more modular, there are multiple ways to do that. One is to set the base URI explicitly inside the HTML document (see <base>).

Another one is to resolve links relatively on the server-side based on the Request URI and your site's root-path. See this answer for an example.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文