ホームページ > 記事 > CMS チュートリアル > dedecms がサイト全体に擬似静的機能を実装する方法
DedeCms のサイト全体は、管理と SEO を容易にするために擬似静的です。DedeCms はデフォルトで静的 HTML ファイルを生成します。これは最適化に非常に適していますが、まだいくつかのファイルが存在します。ページは動的形式です (タグ ページ、Web サイト コンテンツ検索ページ、DedeCms Q&A ページなど)。これらのページを検索エンジンにより適切に含めるためには、擬似静的ページを作成する必要があります。システムでは静的なHTMLファイルを生成することもできますが、毎日更新されるコンテンツの量が特に多い場合、HTMLファイルの生成もシステムや人手に負担となるため、擬似的に静的な形式にして、HTMLファイルの生成を不要にすることもできます。面倒な HTML ファイルの生成が必要になります。
DedeCms サイト全体を静的にします。これには、mod_rewrite 擬似静的モジュールのサポートが必要です。 Web マスターが .htaccess 正規表現に精通している限り、dede Web サイト全体を静的にすることができます。これにより、検索エンジンとの整合性が高まり、URL の繰り返しも回避できます。 DedeCms のフルサイトの擬似静的構成は、主にソース コードを手動で変更する必要があるため、少し面倒です。整理手順は次のとおりです:
1. まず、サイトの擬似静的機能を有効にします。 DEDE 管理者バックエンドにログイン -> システム -> システム基本パラメータ -> コア設定 -> 擬似静的を使用するかどうか「はい」を選択します。
2. ソースプログラムを修正して、擬似静的ホームページ、擬似静的チャンネルページ、擬似静的リストページ、擬似静的記事ページを実現します。他の PHP オープンソース プログラムほど優れたものではありませんが、シンプルです。
3. .htaccess および .htaccess ファイル ルールを作成して書き込み、DedeCms のインストール ディレクトリにアップロードします。
DedeCms フルサイト擬似静的チュートリアル: list|article|Q&A|search|TAG 擬似静的ルールを含む:
1. Web サイトサーバーと Web サイトかどうかスペースはそれをサポートします 擬似静的:
これは特に重要であり、そうでないとすべての設定が機能しません。 Web サイトがサーバーを使用している場合は、自分でセットアップできますが、スペースの場合は、IDC サービス プロバイダーのカスタマー サービスに擬似静的をサポートしているかどうかを問い合わせることができます (一般的なスペースは擬似静的をサポートしています)。 Apache サーバーの擬似静的機能は比較的単純で、対応する擬似静的ルールを .htaccess ファイルに直接追加するだけです。また、IIS サーバーに擬似静的機能を実装するには、Rewrite コンポーネントをロードして httpd.ini ファイルを構成する必要があります。
2. DedeCMS 擬似静的をオンにする:
1) DedeCms バックエンド - システム パラメーター - コア設定 - 擬似静的を使用するかどうか: 「はい」を選択します。
2) DedeCms 質問と回答モジュールを有効にした場合、バックグラウンドで - システム パラメーター - モジュール設定 - Rewrite を使用するかどうか: 「はい」を選択;
3) 列を作成するときまたはバッチで列を追加する場合、列リスト オプション: [動的ページを使用する] を選択します。新しい記事を追加する場合、公開オプション: [動的ブラウジングのみ] を選択します。同様に、これら 2 つの値がデフォルトになるようにテンプレートを変更することもできます。変更方法は非常に簡単で、次のとおりです。
バックグラウンド ファイルを見つけます: /dede/templets/catalog_add.htm 列を追加するときにデフォルトの「動的ページを使用する」を変更します
<td height="26" style="padding-left:10px;">栏目列表选项:</td> <td><input type='radio' name='isdefault' value='1' class='np' checked="checked" />链接到默认页 <input type='radio' name='isdefault' value='0' class='np' />链接到列表第一页 <input type='radio' name='isdefault' value='-1' class='np' />使用动态页</td>
変更点:
<td height="26" style="padding-left:10px;">栏目列表选项:</td> <td><input type='radio' name='isdefault' value='1' class='np' />链接到默认页 <input type='radio' name='isdefault' value='0' class='np' />链接到列表第一页 <input type='radio' name='isdefault' value='-1' checked="checked" class='np' />使用动态页</td>
バックグラウンド ファイルが見つかりました: /dede/templets/article_add.htm 記事を追加するときのデフォルトの「動的ブラウジングのみ」を変更します
<td width="90">发布选项:</td> <td width="379"><input name="ishtml" type="radio" class="np" value="1" checked="1" />生成HTML <input type="radio" name="ishtml" class="np" value="0"/>仅动态浏览 </td>
変更点:
<td width="90">发布选项:</td> <td width="379"><input name="ishtml" type="radio" class="np" value="1" />生成HTML <input type="radio" name="ishtml" class="np" value="0" checked="1"/>仅动态浏览 </td>
4) Web サイトに静的列または記事 HTML がすでに生成されている場合は、background-system-SQL コマンド ライン ツールで次のステートメントを実行するだけです:
update dede_arctype set isdefault=-1; update dede_archives set ismake=-1;
注: dedeコマンド内のデータテーブルプレフィックスはWebサイトインストール時のデータテーブルプレフィックスですので、実際の状況に応じて置き換えてください。
3. DedeCms の擬似静的サポートをオンにすることは、バックグラウンドで完全に構成することはできず、手動で変更する必要がある箇所が多数あります。 V5.3以降に適用可能なDedeCmsフルサイト擬似静的実装方法について説明します。今回の DedeCms 擬似静的テスト環境は Windows IIS6 ですが、考え方が明確であれば、Linux や他のサーバーでも擬似静的実装の原理は同じです。
1) DedeCms の疑似静的ホームページ:
サイトのルート ディレクトリにあるindex.html を削除し、今後ホームページの HTML を更新しないでください。また、動的ホームページを使用しないことも選択します。
2) DedeCms チャンネル | リスト ページ | 記事ページ 擬似静的:
主に、GetFileName() と GetTypeUrl() の 2 つの関数を変更することで実現されます。 DedeCms V5.3、DedeCms V5.5、および DedeCms V5.6 バージョンの場合は、/include/channelunit.func.php を開いて変更します。注: DedeCms V5.7 では、このファイルのパスが変更されており、/include/helpers/channelunit.helper.php を開くことができます。
A. GetTypeUrl() の次のコードを変更します:
//动态 $reurl = $GLOBALS['cfg_phpurl']."/list.php?tid=".$typeid; 替换为 //动态 $reurl = "/category/list-".$typeid.".html";
B. GetFileName() の次のコードを変更します:
//动态文章 if($cfg_rewrite == 'Y') { return $GLOBALS["cfg_plus_dir"]."/view-".$aid.'-1.html'; } 替换为 //动态文章 if($cfg_rewrite == 'Y') { return "/archives/view-".$aid.'-1.html'; }
3) DedeCms リスト ページング擬似静的:
/include/arc.listview.class.php を開き、GetPageListDM() 関数の終わりを見つけて動的ページング リストを取得します。
$plist = str_replace('.php?tid=', '-', $plist);
を
に置き換えます。
$plist = str_replace('plus', 'category', $plist);//将默认的plus替换成category $plist = str_replace('.php?tid=', '-', $plist);
リスト ページングのデフォルトのリンク形式 /plus/list-1-2-1.html を /category/list-1-2-1.html に変更します。この手順は変更する必要はありません。
4) DedeCms 記事ページング擬似静的:
/include/arc.archives.class.php を開き、GetPagebreakDM() 関数の最後の部分を見つけて動的ページングを取得します。ページング リスト:
$PageList = str_replace(".php?aid=","-",$PageList);
は
$plist = str_replace('plus', 'archives', $plist);//将默认的plus替换成archives $PageList = str_replace(".php?aid=","-",$PageList);
に置き換えられます5) DedeCmsTAG タグの擬似静的:
DedeCms默认的TAG标签URL,形如/tags.php?/dedecms5.7/,特别的难看。打开/include/taglib/tag.lib.php,找到lib_tag()函数下的:
$row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/";
替换为
$row['link'] = $cfg_cmsurl."/tags/".urlencode($row['keyword'])."/";
到这里,TAG标签URL中的“.php?”号就去掉了。
6)DedeCms搜索伪静态:
DedeCms搜索URL静态化比较麻烦,附带参数多不说,参数也可能变化,像搜索结果分页的URL就特麻烦,伪静态规则匹配复杂。将搜索URL中“search.php?…”直接替换为“search.html?…”,至于“?”号之后的参数以任意字符进行匹配。
依次打开include文件夹下的channelunit.func.php、arc.searchview.class.php、arc.taglist.class.php以及/include/taglib/hotwords.lib.php,查找“search.php?”替换为“search.html?”即可。
7)DedeCms问答伪静态:
问答模块的伪静态实现比较简单,只要后台开启伪静态支持即可,至于个别页面,如ask目录下的browser.php、question.php以及include目录下的common.inc.php、functions.inc.php都需要简单修改才可以匹配伪静态规则。注意一点,DedeCms V5.7问答模块整体升级了,之前的规则已经不适用了。
4、DedeCms伪静态规则:
依照上面的步骤修改完毕,接下来配置好httpd.ini文件和.htaccess文件伪静态规则,则DedeCms全站伪静态就完美实现。
1)IIS伪静态
打开httpd.ini文件,加入如下规则:
#首页伪静态规则,如果不使用动态首页,请勿必删除这一行,否则打开首页会出现死循环 RewriteRule ^(.*)/index\.html $1/index\.php [I] #列表页伪静态规则 RewriteRule ^(.*)/category/list-([0-9]+)\.html $1/plus/list\.php\?tid=$2 [I] RewriteRule ^(.*)/category/list-([0-9]+)-([0-9]+)-([0-9]+)\.html $1/plus/list\.php\?tid=$2&TotalResult=$3&PageNo=$4 [I] #文章页伪静态规则 RewriteRule ^(.*)/archives/view-([0-9]+)-([0-9]+)\.html $1/plus/view\.php\?arcID=$2&pageno=$3 [I] #搜索伪静态规则 RewriteRule ^(.*)/search\.html(?:(\?.*))* $1/search\.php?$2 [I] #TAG标签伪静态规则 RewriteRule ^(.*)/tags\.html $1/tags\.php [I] RewriteRule ^(.*)/tags/(.*)(?:(\?.*))* $1/tags\.php\?\/$2 [I] RewriteRule ^(.*)/tags/(.*)\/(?:(\?.*))* $1/tags\.php\?\/$2\/ [I] RewriteRule ^(.*)/tags/(.*)\/([0-9])(?:(\?.*))* $1/tags\.php\?\/$2\/$3 [I] RewriteRule ^(.*)/tags/(.*)\/([0-9])\/(?:(\?.*))* $1/tags\.php\?\/$2\/$3\/ [I] #问答伪静态规则,适用于DedeCmsV5.3-5.6版本,需要修改几处程序 RewriteRule ^(.*)/post\.html $1/post\.php [I] RewriteRule ^(.*)/type\.html $1/type\.php [I] RewriteRule ^(.*)/question-([0-9]+)\.html $1/question\.php\?id=$2 [I] RewriteRule ^(.*)/browser-1-([0-9]+)\.html $1/browser\.php\?tid=$2 [I] RewriteRule ^(.*)/browser-2-([0-9]+)\.html $1/browser\.php\?tid2=$2 [I] RewriteRule ^(.*)/browser-1-([0-9]+)-([0-9]+)\.html $1/browser\.php\?tid=$2&page=$3 [I] RewriteRule ^(.*)/browser-2-([0-9]+)-([0-9]+)\.html $1/browser\.php\?tid2=$2&page=$3 [I] RewriteRule ^(.*)/browser-([0-9]+)\.html $1/browser\.php\?lm=$2 [I] RewriteRule ^(.*)/browser-1-([0-9]+)-([0-9]+)\.html $1/browser\.php\?tid=$2&lm=$3 [I] RewriteRule ^(.*)/browser-2-([0-9]+)-([0-9]+)\.html $1/browser\.php\?tid2=$2&lm=$3 [I]
2)Apache伪静态:
打开.htaccess文件,加入如下规则:
#提供部分规则作参考 RewriteRule ^category/list-([0-9]+)\.html$ /plus/list.php?tid=$1 RewriteRule ^category/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/list.php?tid=$1&totalresult=$2&PageNo=$3 RewriteRule ^archives/view-([0-9]+)-([0-9]+)\.html$ /plus/view.php?aid=$1&pageno=$2 RewriteRule ^index.html$ index.php
更多DedeCMS相关技术文章,请访问DedeCMS教程栏目进行学习!
以上がdedecms がサイト全体に擬似静的機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。