ホームページ >バックエンド開発 >PHPチュートリアル >thinkphp URL ルール、URL 擬似静的、URL ルーティング、URL 書き換え、URL 生成 (15)_PHP チュートリアル

thinkphp URL ルール、URL 擬似静的、URL ルーティング、URL 書き換え、URL 生成 (15)_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:10:37987ブラウズ

thinkphp URL ルール、URL 擬似静的、URL ルーティング、URL 書き換え、URL 生成 (15)

この章: thinkphp URL ルール、URL 擬似静的、URL ルーティング、URL 書き換え、および URL 生成の詳細な紹介

1. URLルール
1. デフォルトでは大文字と小文字が区別されます
2. 大文字と小文字を区別したくない場合は、設定ファイルを変更できます
'URL_CASE_INSENSITIVE'=>true,//URL は大文字と小文字を区別しません
*モジュール名が長すぎる場合:
A. モジュール名が UserGroupAction の場合、複合モジュール (通常は IndexAction) です
次に、モジュールを見つけるための URL を
として記述する必要があります。 http://localhost/thinkphp4/index.php/user_group/index
B. 「URL_CASE_INSENSITIVE」=>false の場合 (大文字と小文字を区別する場合にアクセス可能)
URL は
のように書くこともできます http://localhost/thinkphp4/index.php/UserGroup/index


2. URL 擬似静的 (tp はデフォルトで擬似静的をサポートします)
http://localhost/thinkphp4/index.php/UserGroup/index.xml
*デフォルトでは、pdo、html、xml... がすべてサポートされています。制限したい場合は、設定を追加するだけです
'URL_HTML_SUFFIX'=>'html|shtml|xml', //擬似静的サフィックスを制限します


3. URL ルーティング
1.ルーティングを開始します
設定ファイルでルーティングのサポートを有効にするには
'URL_ROUTER_ON' => true, //ルーティングを有効にする
2. ルーティングを使用する
1. ルール式設定ルーティング
'URL_ROUTER_ON' => true, //ルーティングを有効にする
'URL_ROUTE_RULES' => array(
'my'=>'Index/index',//静的アドレスルーティング訪問: http://localhost/thinkphp/index.php/my
':id/:num'=>'インデックス/インデックス',/*任意の数値を記述してください。文字でもOKです
動的アドレスルーティングへのアクセス: http://localhost/thinkphp/index.php/10/200
get メソッドを使用して値を渡すことも、モジュールコントローラーで値を取得することもできます
echo $_GET['id'];
エコー $_GET['num'];
*/
'my/:num'=>'Index/index', //動的アドレスと静的アドレスの混合ルーティング http://localhost/thinkphp/index.php/my/200
'year/:year/:month/:date'=>'Index/index',//動的および静的混合アドレス ルーティング: http://localhost/thinkphp/index.php/year/2014/12/21
'year/:yeard/:monthd/:dated'=>'Index/index',//動的および静的混合アドレス ルーティング -- d を追加すると、タイプは数値のみであることを意味します
'my/:id$'=>'Index/index',// $ を追加して、アドレスが my/1000 のみであり、その後に他のコンテンツが存在できないことを示します
);


2. 正規表現によるルーティング設定
//http://localhost/thinkphp/index.php/year/2014/12/21
'/^年/(d{4})/(d{2})/(d{2})/'=>'インデックス/インデックス?年=:1&月=:2&日付=:3'


3. 注意事項:
1. ルートが複雑であればあるほど、より前に配置されます
'URL_ROUTE_RULES'=>配列(
'my/:year/:month:/:day'=>'Index/day', ※複雑なルーティングは前に配置し、後ろに配置すると実行されません
'my/:idd'=>'インデックス/インデックス',
'my/:name'=>'インデックス/インデックス',
)
2. 完全に一致するルーティング ルールとして $ を使用できます (複雑さに関係なく、すべての通常のルールが一致します)
'URL_ROUTE_RULES'=>配列(
'my/:idd$'=>'インデックス/インデックス',
'my/:name$'=>'インデックス/インデックス',
'my/:year/:month:/:day$'=>'インデックス/日',
)、
3. 通常のマッチングを使用します
'URL_ROUTE_RULES'=>配列(
'/^my/(d+)$/'=>'インデックス/インデックス?id=:1',
'/^my/(w+)$/'=>'インデックス/インデックス?名前=:1',
'/^my/(d{4})/(d{2})/(d{2})$/'=>'インデックス/日?年=:1&月=:2&日=:3',
)、


4. URL書き換え
例: http://localhost/thinkphp/index.php/Index/index.html/t/my ----index.php を表示したくないです
以下は Apache の設定プロセスです。参照してください:
1. mod_rewrite.so モジュールが httpd.conf 設定ファイルにロードされます
2.AllowOverride None なしをすべてに変更します
3. URL_MODEL が 2 に設定されていることを確認します (この手順は省略します)
4. 次の内容を .htaccess ファイルとして保存し、エントリーファイルと同じディレクトリに配置します

リライトエンジンオン
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$index.php/$1[QSA,PT,L]


Apacheを再起動すると、元の

からアクセスできます http://localhost/thinkphp/Index/index.html/t/my --URL アドレスが簡素化され、SEO のサポートが強化されました


5. URL 生成 (詳細はマニュアルに記載)
パブリック関数 url(){
echo U('Index/add'); // Index モジュールの追加操作の URL アドレスを生成します
///thinkphp/index.php/index/add
}

前の記事 http://qdxinbj8.2cto.com/index.php?m=content&c=content&a=public_preview&steps=1&catid=75&id=363637

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/934466.html技術記事 thinkphp URL ルール、URL 擬似静的、URL ルーティング、URL 書き換え、URL 生成 (15) この章: thinkphp URL ルール、URL 擬似静的、URL ルーティング、URL 書き換え、URL 生成の詳細な紹介 1...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。