2017-09-14 8 views
-1

もっとプロフェッショナルに見えるようにログインシステムを少し開発していますが、もっと簡単に見えるように単純なリンクにリクエストを送る方法を知りたいのですが?ユーザーがすべての罰金とダンディが、私はそれは非常によさそうだとは思わないし、他の多くのウェブサイトがこれを持っていないhttp://www.example.com/user?user=JimmyJones不要なGETリクエスト?最後に

ザッツに行くことによって誰かよそのプロファイルを検索することができ、私のシステムの一つのために例えば

あなたが見ることができるように、私はいくつかの非常に簡単なhtaccessを使用して終わりに.phpを取り除いてしまったように、私は知らない何らかのトリックのために彼らのリンクで。

しかし、どのように私はに上記のそのリンクを変更することができます。

http://www.example.com/user/JimmyJones

これを読むためにあなたの時間を割いてありがとうございました、私は本当に誰かが私の小さな問題で私を助けることを願って、私は仮定.htaccessでこれを行うにはいくつかの方法がありますか?

編集:ここでは

はちょうど私がそれをやりたいかについて、それを行ういくつかのウェブサイトです。

imgur.com/user/example

facebook.com/exampleuser

+2

あなたが探しているURLを書き換えます**。これは、通常、Apacheモジュールmod_rewriteを通して実行されます。 https://httpd.apache.org/docs/current/en/mod/mod_rewrite.html – Calimero

+0

@Calimeroどのように私はこの卿をしますか、もし私が何をすべきかについて私に何らかの指導を与えることができれば、非常に感謝します。この? – BigHoss

+1

ルータとフロントコントローラパターンを使用することもできます。 – Progrock

答えて

0

.htaccessでは、書き換えモジュールを有効にしたApache Webサーバーを想定しています。

RewriteEngine On 
RewriteRule ^user/([a-zA-Z]+)$ user.php?user=$1 [L] 

最初の行には書き換えエンジンを使用しています。

2番目は、 'user'というパターンでスラッシュが始まり、文字列の最後までアルファベットのパターンが一致する(つまり、.htaccessを含むフォルダとの相対的な)追加のクエリパラメータは含まれません)。

Lフラグは基本的にジョブが完了したと言います。

.htaccessファイルは公開ルートにあった場合:それは一致しませんしかし

//example.com/user.php?user=JimmieJones 

//example.com/user 
//example.com/user/ 
//example.com/user/JimmieJones/ 
//example.com/user/Freddy_K9 

注意を任意の既存のリンクという

//example.com/user/JimmieJones 

はにマッピングされますあなたのアプリケーション:

<a href="/user?user=JimmieJones">Visit Jimmie's Profile</a> 

おそらく更新する必要があります。上記の例のパターンでは、古いスタイルのURL(以前に索引付け/ブックマーク済み)は、既存のルールなしで失敗する可能性があります。パターンを調整したり、古いスタイルのリダイレクトを設定する必要があるかもしれません。

多くのリダイレクトと書き換えを管理することは頭痛になる可能性があります。私はあなたのURLの名前の間隔にいくつかの注意を助言したいと思います。そしてそれらを文書化する。

私はエイリアス/ショートカット/キャンペーンの第1レベルのパターンを予約しています。

//example.com/slug 

可能であれば、あなたのユーザープロフィールのURLは避けてください。

一貫性を目指し、URL(関連付けられたhttpメソッドを使用)とリソース(正規のURL)に対して1対1の対応が理想的です。

+0

この説明をしていただけますか? [L]と$ 1はどういう意味ですか? – BigHoss

+0

マニュアルは私ができるよりも優れた仕事をしています。それらはフラグと呼ばれます。 https://httpd.apache.org/docs/2.4/rewrite/flags.html – Progrock

0

ルート辞書に.htaccessファイルを作成し、その後、あなたのたとえばそれはそう完全なページは次のようになります。この

RewriteRule ^/?user/([^/]+)/?$ user?user=$1 [L,QSA] 

ようになり、自分のルールを記述

RewriteEngine on 

でそれを開始この

RewriteEngine on 
RewriteRule ^/?user/([^/]+)/?$ user.php?user=$1 

+0

@Progrockいいえ、ほんの一例です。 – AXAI

+0

@Progrock実際に私が確信している唯一のもの、オプションのスラッシュ。 – AXAI

関連する問題