2012-09-17 142 views
0

我有一個基於codeigniter的PHP網站。它使用模式視圖控制器幷包含文章。每篇文章都有id,並由Articles控制器顯示。一旦顯示文章,URL看起來像http:// localhost/ci/articles/show_article/245。現在問題是任何人都可以輸入數字246 123 222並隨機查看文章。我對此感到不舒服。我希望讀者按照網站中事物的組織方式行事,並希望阻止他們直接訪問URL中的文章。 這在PHP/codeigniter中如何實現?防止用戶輸入URL的值

+2

任何試圖控制這種情況的嘗試都會在沮喪的用戶中結束,很可能會傷害您的搜索引擎優化。 –

回答

0

您無法控制瀏覽器區域外的用戶,如果可以的話。你不應該。

或者,您可以使用自己的模式使用編碼的文章ID,使其不可預知。當收到這些編碼的文章ID時,將它們解碼並相應地顯示文章。

+0

非常感謝..對你的幫助,所以我明白了它可以完成使用session_flags和加密articl id,但可能會傷害我的搜索引擎優化..非常感謝 –

+0

@ceemabiswas會傷害你的搜索引擎優化,而不是可能。您將阻止Google抓取您的文章。而且你也會混淆你的用戶,阻止他人分享你的鏈接。你基本上會破壞網站的網站。 – DampeS8N

+0

如果你遵循嚴格的模式,那麼不會。 SEO不關心URL的可預測性。所有這一切都是。 Ids應該與整個文章的生命週期保持一致。 – Rab

1

這是不能做到的。您無法控制用戶輸入到Web瀏覽器的內容。

0

這是不可能的,也沒有理由,你應該不舒服。您無法阻止客戶端請求。我認爲任何人試圖正確使用你的網站(假設它設置正確)不會嘗試不按順序通過文章。

如果您絕對需要,您可以執行的操作類似於爲他們訪問過的文章設置了_SESSION標誌,並且如果他們嘗試違反規定,重定向它們。

+0

非常感謝..所以你的幫助,所以我明白的是,它可以使用session_flags和加密articl ID,但可能會傷害我的搜索引擎優化..謝謝很多 –