2012-08-03 89 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] 
相關問題