2014-10-11 47 views
0

我是新來AngularJS,和我一起玩$routeProvider後我有FUE的東西問...AngularJS,阿帕奇,搬運路線

嗯,我知道AngularJS用於單頁的應用程序,而是網址是什麼即直接例如訪問:

案例1:

,如果有人將訪問example.com那麼他會點擊一個鏈接,將送他:example.com/article/title/,以及那將是OK的,因爲AngularJS會阻止客戶端請求到服務器,至今沒有危害,現在爲

案例2:

,如果我要派我的文章鏈接的人,他會嘗試訪問example.come/article/title/以及的到來。

我的問題是約對付這種行爲的策略,我有一些想法,但我不是非常熟悉AngularJS正如我所說,但:

  1. 我在想重寫規則通過Apache重寫引擎,我忽略了其餘的網址(example.com/path將變成example.com),,但影響我的網頁中的相對鏈接,所以我必須切換到完整鏈接,例如(example.com/js/main.js)。

的想法不好我知道它,但它讓AngularJS在任何情況下照顧的URL。

  • 似乎什麼(當然我認爲)是更好的策略是使用Apache重寫引擎再次但是這個時候,我會改寫example.come/article/titleexample.com?title=articleTitle,那麼我將通過我的服務器檢查(PHP)的價值,並拉出並從數據庫中打印文章到頁面之前,它甚至得到AngularJS手。
  • 現在這種方法打破單頁概念(不是?),我對這種方法有不同的看法。

    總之,我正在尋找最好的方式來處理頁面之外的請求,AngularJS無法防止的請求。

    編輯:

    的問題很簡單,當從網站AngularJS內的鏈接,用戶點擊將阻止默認動作是從服務器請求的路徑例如example.com/article/title/將尋找title文件夾即在article之內或更確切地說是該文件夾的索引。

    現在如果有朋友送你一個鏈接直接是一個鏈接,指向例如example.com/articl/title的特定的文章會出現一個服務器請求的article文件夾下example.com,以獲取指數爲title文件夾。

    希望現在更有意義。

    +0

    角路由如下所示:http:// localhost:9000 /#/ repairs,表示路由由#後的路由標識決定。 – tomazahlin 2014-10-11 16:13:25

    +0

    @tomazahlin,嗨,我確實知道,但你不希望我使用重寫規則在'example.com'和'/ article/title /'之間添加'#',它是一個想法,我在想關於它,但它是一個非常糟糕的。 – 2014-10-11 17:52:59

    +0

    嘿,你能解釋一下情況1和情況2好一點嗎?我不完全明白你想要達到的目標。請告訴我一個Angular應用程序的基本網址示例,以及您想要用/ article/title /做什麼。 – tomazahlin 2014-10-11 19:25:00

    回答

    0

    所以我也發現了Apache重寫引擎形式的解決方案:

    RewriteCond %{REQUEST_URI} ^(/article/[a-z-]+/?)$ [NC] 
    RewriteRule .* http://example.com/#%1 [NE,R,L] 
    

    通過使用這些規則,我能夠返回客戶端example.com/#/article/title

    下一步是AngularJS將剝離#留給我example.com/article/title

    沒有完整的路徑是需要的,我可以留在我的相對路徑。