、私はしばらく前に同様の目的のために何かを開発したことは、かなり簡単なJavascriptを/ jQueryのコードを使用して内部URLの動的な変更を行います
。
静的な.jsファイルにJavascriptを配置してから、CDNのjQueryを組み込み、パブリックディレクトリのJavascriptコードを組み込むことができます。あなたが.htmlファイルからそのようにそれを使用することになり、ファイル「リンクrewriter.js」と呼ぶことを言う:
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script>
<script type="text/javascript" src="/public/javascript/link-rewriter.js"></script>
リンク書き換えのためのコードは次のようになります。
jQuery(document).ready(function() {
var parser = document.createElement('a');
parser.href = '/';
var domain = parser.protocol + '//' + parser.host;
var regexp = new RegExp('^' + escapeRegExp(domain), 'i');
$('a[href^="http://"],a[href^="https://"],a[href^="//"]]').each(function(index, link) {
var href = link['href'].replace(regexp, '');
if ((!/^\//.test(href)) && (!/\.html$/i.test(href)) {
link['href'] = link['href'] + '.html';
}
});
});
このコードは、ドメインを定義するために、プロトタイプのリンク(アンカー)要素を作成してプロトコルとページのホストを照会することから始まります。
その後、すべてのHTTP、HTTPS、および相対的なローカルリンク要素は、それを書き換える必要があるかどうかを確認するために処理されます。処理コードは、最初にウェブページのドメインを取り除き、別のドメイン(またはプロトコル)またはこのドメインのいずれかのリンクを残します。このドメインのリンクはさらに処理され、.html拡張子がないものと、.html拡張子が自動的に付加されたものが表示されます。このアプローチには
五分五分:
- 単にページにタグを追加することは、それは驚くほど速いので、ユーザは、(それも数千人で、起こって気づくことはありません場所
- でリンクをアップグレードします!!)ページ上のリンクの同じドメインの
- リンクのみが変更され、リンクのさえ特定のグループは、このアプローチへ
欠点を対象とすることができます:
- ユーザーはJavascriptがブラウザで有効になっていなければなりません
- これはコードであるので、それが最終的にメンテナンスや機能の拡張が必要な場合があります(実際には、誰がこれらの日??ない)
これまでに試したことをお見せください。 –
私はこれまでに試したことを追加しました... – geierwally
['^((?:(?:!\。(?: html | js | css | png)\ /?$)。)*)$ $ 1.html [L] '](https://regex101.com/r/fE9sR9/1) –