私は、ユーザーがブログを書いたり質問したりできるソーシャルネットワークを持っています。私はPHPを介してURLの最後にブログや質問のタイトルを投稿する動的なURLを作成したいと思っています。動的URLを作成するにはどうすればよいですか?
例:これを実現するためのクリーン最も効率的な方法を探してい
www.blah.com/the_title_here
。
私は、ユーザーがブログを書いたり質問したりできるソーシャルネットワークを持っています。私はPHPを介してURLの最後にブログや質問のタイトルを投稿する動的なURLを作成したいと思っています。動的URLを作成するにはどうすればよいですか?
例:これを実現するためのクリーン最も効率的な方法を探してい
www.blah.com/the_title_here
。
を作成するタイトル
"How do I create dynamic URLs?"
からのみ$id
を使用データベース行に「g」を追加し、そのスラッグと一致する投稿を見つけるPHPスクリプトを作成します。例えば
、あなたがslug
というパラメータを取っindex.php
というスクリプトを持っている場合...
<?php
if (isset($_GET['slug'])) {
$sql = "SELECT * FROM `your_table` WHERE slug = ? LIMIT 1";
$smt = $pdo->prepare($sql);
$smt->execute(array($_GET['slug']));
$row = $smt->fetchObject();
// do something with the matching record here...
}
else {
// display home page
}
...あなたの.htaccessを使用してできた後、再書き込み要求:
RewriteEngine on
RewriteRule ^(.+)$ index.php?slug=$1
"www.blah.com/$id/".preg_replace('/^[a-z-]+/','',preg_replace('/[ ,;.]+/','-',strtolower($title)))
、それはあなたが通常URLに優しい「SLUを保存するURL
www.blah.com/15/how-do-i-create-dynamic-urls
これを行うオープンソースのソフトウェアがたくさんあります。あなたはこれを行うためにWordPress.orgやMediaWiki.orgを見ることができます。 mod_rewrite
ルールを追加するには、.htaccess
またはApacheの設定の組み合わせが必要です。
次に、あなたが持っている場合はそうでなければ、SQLインジェクションやXSSに対して脆弱であることができ、マーティン・ビーンはポストをルックアップするために書いたように、コントローラファイルをしたい...しかし、あなたは脱出/サニタイズ/正しく入力を検証することを確認しますあなたのサイトのJavaScript。
したがって、idメソッドを使用し、pretty-url目的でのみslugを使用する方が良いです。 WordPress.orgソフトウェアはまた、あなたが多くの投稿をしたら、スラッグだけに行くことはそれを遅くすることを示唆しています。だから、あなたが一致する正規表現をwww.blah.com/slug-phrase-goes-before-the-numeric_id
の組み合わせを使用して書くことができますでしょう.*(\d+)$
これを行うには、データベースを使用し悲しい :( データベースを検索する必要はありません。多くのケースがあるかもしれませんし、あなたはこの方法で意志例えば: - 。。。マーティンが示すあなたのパスやスラッグを取得するようwww.blah.com/signup
(ない点ここでは)とDB接続は資源、深刻なリソースを食べていない...
RewriteEngine on
RewriteRule ^(.+)$ index.php?slug=$1
ほとんどのフレームワークはファイルシステムを使用しますよりクリーンなURLを実現します。
<?php
$default = "home";
//function to make sure the slug is clean i.e. doesnot contain ../ or something
if(isset($_GET['slug'])) $slug = clean($_GET['slug']);
if(!isset($slug)) $slug = $default;
$files = explode('/',$slug);// or any other function according to your choice
$file = "./commands/".$files[0].".php";
if(file_exists($file))
require_once($file);
else
require_once("./commands/".$default.".php");
に理論的には似ているすべてのファイルを保持するために、 一つのフォルダと 何かがあなたが望むように複雑に、これは簡単なように作ることができます。それはそれをやっての
利点このよう
$default
はなく、あなたが最初に使用するロジックにする必要がありますデータベースを照会するよりも速いです。site.com/users/piyushmishra
とsite.com/forums/mykickassforum
あるいはsite.com/category/category-name/post-name/comments/page-3
./ACLcommands/users.php
、./XMLRPC/ping.php
非常に抽象的ですね。これは正確に何ですか? –
タイトルから「動的URLを作成するにはどうすればよいですか? URLを作成します:www.blah.com/15/how-do-i-create-dynamic-urls –