显示相同的URL时访问不同的URL

时间:2012-08-03 03:43:25

标签: php html url

我想知道如何从 domain.com 访问 domain.com/home ,我之前已经问过这个问题(One web page with multiple URL's using PHP)我是告诉我使用chdir()include(),但现在我想知道如何才能使用本地.css文件,因为目前如果我访问“domain.com/home”,当头部说“使用style.css”它会访问 domain.com/home/style.css ,但是如果我访问 domain.com ,则会访问 domain.com /style.css ,因为它要求一个本地文件,更改所有本地文件访问是不切实际的,因为它们都是使用php包含的模板绘制,所以修改其中一个是不方便做的,而不是美学上的讨人喜欢在代码清洁方面。

如果你不完全明白我要问的是什么 http://infinity-nova.comhttp://infinity-nova.com/home也看到了手头的问题。有什么方法可以使用htaccess吗?我正在使用apachi服务器,因此我可以使用任何url-rewriting插件,如果有必要的话,不能使用apachi。

4 个答案:

答案 0 :(得分: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变量,但所有路径都会相应更改。

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

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

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^http://example.com*$ http://example.com/home/ [R=301,L]