2012-08-03 90 views
0

我不知道我怎么会从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包含模板进行绘制,因此修改其中的一个不方便,而且在代码清洁方面不够美观。访问不同的URL,同时显示相同的URL

如果你不完全明白我在问什么去 http://infinity-nova.comhttp://infinity-nova.com/home也看到了手头的问题。有没有办法使用htaccess来做到这一点?我使用的是apachi服务器,所以我可以使用任何url-rewriting插件,如果这是必要的,那不是apachi所具有的。

回答

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可变的,但所有的路径将发生相应的变化。

0

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

/home /你的资产应该是哪里?你的文档根目录是什么?

您是否曾尝试在apache/nginx中将URL domain.com/重命名为domain.com/home。

0

嘛,我只想访问样式表在两个页面以绝对路径这样

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

这应该简单地追加域的开始。

0

写入按照.htaccess文件:

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