0

我想知道如何从domain.com访问domain.com/home,我之前曾问过这个问题(一个使用 PHP 的具有多个 URL 的网页),我被告知要使用,但现在我想知道我怎么能这样它可以与本地 .css 文件一起使用,就像目前我访问“domain.com/home”时头部说“使用 style.css”它应该访问domain.com/home/style.css但如果我访问domain.com它访问domain.com/style.csschdir()include()由于它要求一个本地文件,因此更改所有本地文件访问是不切实际的,因为它们都是使用 php 包含从模板中绘制的,因此修改其中一个是不方便的,并且在代码清洁度方面也不美观。

如果您不完全理解我的要求,请访问 http://infinity-nova.comhttp://infinity-nova.com/home也可以查看手头的问题。有没有办法使用 htaccess 做到这一点?我正在使用一个 apachi 服务器,所以我可以使用任何 url 重写插件,如果有必要的话,apachi 没有什么。

4

4 回答 4

2

您将两个不同的问题视为同一件事。您的内部 PHP 脚本的位置是一个问题,看起来这个问题已经解决了。

能够定位资源的浏览器是完全不同的事情,这取决于您的应用程序是如何设置的。

如果您的应用程序需要完全可移植(加载到任何目录中),那么您需要创建一个 baseUrl() 函数以在整个应用程序中使用。

假设您将应用程序加载到应用something.com/foo/bar/myapp程序myapp的根目录中。在您的引导程序中(这是一个在其他任何东西之前运行的脚本,通常用于设置数据库连接等),您必须硬核或以其他方式确定您的应用程序正在运行的基本 URL,例如:

$baseUrl = "/foo/bar/myapp";

在您的应用程序的其余部分中,您需要使用这个变量(如果您的应用程序是面向对象的,静态函数也是合适的),如下所示:

<?php
<html>
  <head>
    <script src="<?= $baseUrl ?>/js/myscript.js"/>
    ...

MVC 框架以不同的方式处理解析此基本 URL,有些框架带有一个自动执行此操作的功能,但基本过程是相同的。当您的页面呈现时,它将如下所示:

<html>
  <head>
    <script src="/foo/bar/myapp/js/myscript.js"/>
    ...

如果您移动您的应用程序,您还必须重新定义 $baseUrl 变量,但您的所有路径都会相应更改。

于 2012-08-03T03:54:36.667 回答
0

我不太明白,你是怎么遇到这个问题的。

/home/ 你的资产应该在哪里?您的文档根目录中有什么?

您是否尝试过将 url domain.com/ 重写为 apache/nginx 中的 domain.com/home。

于 2012-08-03T03:51:31.657 回答
0

好吧,我只会使用这样的绝对路径访问两个页面中的样式表

   <link rel="stylesheet" type="text/css" href="/home/style.php" />

这应该只是将域附加到开头。

于 2012-08-03T04:07:42.747 回答
0

在您的 .htaccess 文件中写入以下内容:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^http://example.com*$ http://example.com/home/ [R=301,L]
于 2012-08-03T08:32:47.927 回答