0

私たちは、ユーザーがサイトのコンテンツを表示するためにログインする必要があるWebサイトを構築しています(FacebookやTwitterが使用するものと同様)

問題は、私たちのサイトのナビゲーションが完全に台無しになっていることです。

  • ユーザーがサイトを開くと、sitename.comにアクセスします。
  • ユーザーがログインすると、場所は次のように変更されます:sitename.com/login_success.php
  • ユーザーがナビゲーションバーを使用すると、場所は次のように変更されます:sitename.com/login_success.php#page2(AJAXはdivコンテンツの変更に使用されます)

Facebook(url)と比較して:

  • ユーザーがログインしています:sitename.com
  • ユーザーはログインしていません:sitename.com
  • ユーザーは友達検索に移動します:sitename.com/search
  • ユーザーは設定に移動します:sitename.com/settings

FacebookのようなサイトがとてもクリーンなURLを持っているのはなぜですか?どうやってやっているの?#クリーンでユーザーフレンドリーなURL(または?および&およびを含まない)を使用して、クリーンなWebサイトを作成したいのですが、=どこから始めればよいですか?フレームワーク(yii、zendなど)を使用する必要がありますか?

4

3 に答える 3

2

ええ、あなたはmod-re-writeを使わなければなりません。

たとえば、これは次のように変更sitename.com/login_success.php#page2する方法sitename.come/page2です。

<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
</IfModule>

#first, what is the original request
RewriteCond %{THE_REQUEST} /login_success.php#page([0-9]*)
# now use regex to redirect to the clean url structure
RewriteRule ^$ /page%1? [R=301,L,NE]
# now make the clean url serve the content from the ugly one
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^page([0-9]+) /login_success.php#page$1 [L]

前回の正規表現の一致についてはよくわかりませんが、これで正しい方向に進むことを願っています。

于 2013-02-24T13:05:42.510 に答える
1

あなたのケースではかなりの量のコーディングが行われていると思います。したがって、今すぐyiiやzendなどのフレームワークに切り替えることはお勧めできません。この決定は、より早く行う必要があります。

URLを簡略化する方法を確認してください。

ApacheWebサーバーのmod_rewriteを使用できます。

于 2013-02-24T12:53:13.867 に答える
0

彼らはmod_rewrite、同様のツールを使用してURLをクリーンアップします。

mod_rewriteApacheで利用できます。IISに相当するものは、URLRewriteという名前です。

http://httpd.apache.org/docs/current/mod/mod_rewrite.html

http://www.iis.net/downloads/microsoft/url-rewrite

これを機能させるために特別なフレームワークを使用する必要はありませんが、多くのフレームワークにはこの機能が組み込まれているため、プロセスを容易にするのに役立ちます。

頭に浮かぶのはWordpressです。Wordpressを使用すると、構成ファイルにあまり触れなくても、これがどのように機能するかを細かく制御できます。

于 2013-02-24T12:52:33.700 に答える