Sti*_*ily 7 php directory .htaccess rewrite root
有没有办法使用htaccess来告诉子目录充当整个站点的根?
例如,如果我在http:// localhost/testsite /下有一个网站,并且在它的index.php文件中,我使用以下代码引用了样式表.
<link rel="stylesheet" type="text/css" href="/css/layout.css" />
Run Code Online (Sandbox Code Playgroud)
我可以加载/localhost/testsite/css/layout.css吗?
为了解决这个问题,我为每个站点设置了localhost子域,虽然有效,但并不理想.
非常感谢.
hue*_*ois 20
如果你想保留'href ="/ css/layout.css"'部分,那么是的,你可以设置一个重写规则.你必须小心不要重定向以/ testsite开头的任何东西(或者你最终会得到一个循环).
喜欢(在root .htaccess中):
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/testsite/.*$
RewriteRule ^(.*)$ /testsite/$1 [QSA,L]
Run Code Online (Sandbox Code Playgroud)
在那里,您将能够从以下位置访问layout.css文件:
HTTP://localhost/testsite/css/layout.css
要么
HTTP://localhost/css/layout.css
当然,所有相对 URI(如您的)都相对于基本 URI,默认情况下是文档的 URI:
http://localhost/testsite/index.php
Run Code Online (Sandbox Code Playgroud)
您只需要告诉要添加哪一部分:
<link rel="stylesheet" type="text/css" href="./css/layout.css" />
^
` see this dot
Run Code Online (Sandbox Code Playgroud)
例子:
Base URI :: http://localhost/testsite/index.php
Relative URI :: ./css/layout.css
Result :: http://localhost/testsite/css/layout.css
Run Code Online (Sandbox Code Playgroud)
如果您需要更加模块化,有多种方法可以实现。一种是在 HTML 文档中显式设置基本 URI(请参阅 参考资料<base>
)。
另一种方法是根据请求 URI和站点的根路径在服务器端相对解析链接。请参阅此答案的示例。