ホームページ  >  記事  >  バックエンド開発  >  phpフレンドリーURLの実装(吐血推奨)_PHPチュートリアル

phpフレンドリーURLの実装(吐血推奨)_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:49:47883ブラウズ

フレンドリーな URL の実装 (Hematemesis が推奨)
他のサイトの URL がこのようになっているのをよく見かけますよね。
http://www.xxx.com/module/show/action/list/page/7
または
http://xx.com/module/show/action/show/id/8.shtml 拡張子付き
または
http://xx.com/module/show/action/show/id/8?word=ss&age=11
こんな感じ
今日はこのメソッドの実装を発表し、最も単純なものを独自に作成します コード
関数は以下のように、クラスにカプセル化されていません。主に必要ではないため、関数を使用する方が便利です

コードをコピーします コードは次のとおりです:

/* *
* フレンドリーな URL アクセスを取得します
*
* @access public
* @return array
*/
function getQueryString (){
$_SGETS =explode("/",substr($_SERVER['PATH_INFO'],1));
$_SLEN = count($_SGETS); $_GET;
for($i= 0;$i<$_SLEN;$i+=2){
if(!empty($_SGETS[$i]) && !empty($_SGETS[$i+1])) $_SGET[$_SGETS[$i] ]=$_SGETS[$i+1];
}
$_SGET['m'] = !empty($_SGET['m']) && is_string($_SGET['m') ']) ? トリム($_SGET[ 'm']).'アクション' : 'インデックスアクション'
$_SGET['a'] = !empty($_SGET['a']) && is_string($_SGET[' a']) ? トリム($_SGET ['a']) : '実行'
/**
* リンク URL を生成
*
* @access public
* @param array $arr
* @return string
*/
関数 setUrl($arr){
$queryString='';
if( $Global['urlmode']==2){
foreach($arr as $k=> $v){
$queryString.=$k.'/'.$v .'/';
}
}
$queryString.=$Global['urlsuffix'];
?> コードをコピーします

コードは次のとおりです:


$ _GET= getQueryString();
?>


しかし、これで実現できるのは
http://www.xxx.com/index だけです。 php/module/show/action/list/page/7 はこんな感じです真ん中に余分なindex.phpがあるので、それを削除して書き直す必要がありますしかし、いくつかのファイルはこれを望まないです、例えば画像のスタイルを変更するので、条件に入れます .htaccess ファイルを作成します

コードをコピーします

コードは次のとおりです:

RewriteEngine on
RewriteCond $1 !^(index.php|css|pics|主題|js|robots.txt)
RewriteRule ^(.*)$index.php/$1 [L]


これで OK、すぐにテストしてみましょう
コードをコピーします
コードは次のとおりです。


$_GET= getQueryString();
;

http://www.bkjia.com/PHPjc/319468.htmlwww.bkjia.com
tru​​e

http://www.bkjia.com/PHPjc/319468.html

技術記事

フレンドリーな URL の実装 (Hematemesis が推奨) 他のサイトの URL がこのようになっているのをよく見かけますよね。 http://www.xxx.com/module/show/action/list/page/7 または http://xx.com/module/show/action/sh...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。