url
のGET値が定義されているかどうかを識別するCMSを作成し、定義されている場合は、index.php
のフロントエンドテンプレートからページのhtmlコンテンツを返します。これは理想的には、PHPをあまり知らない人が使用できるテンプレートシステムを作成し、PHPを知っている場合は拡張できるようにすることです。
すべてこのhtaccessで問題なく動作しました。次のhtaccessはhttp://localhost/index.php?url=(page)
をhttp://localhost/(page)
に変換します。
RewriteEngine On
RewriteRule ^(|/)$ index.php?url=$1
RewriteRule ^([a-zA-Z0-9_-]+)(|/)$ index.php?url=$1
ただし、GET url end
が設定されているかどうかを識別するためにCMSを拡張しました。値がバックエンドであり、$_GET['url']
の値が定義されていない場合、値はインデックスであると見なされます。値が定義されている場合、その値を使用してそのファイルをフェッチします。 htaccessで次のことを実行したい:
最初のパラメーターがbackend
の場合、http://localhost/index.php?end=backend&url=manage-pages
からhttp://localhost/backend/manage-pages
のURLを作成します。
backend
以外の場合は、http://localhost/index.php?url=(page)
からhttp://localhost/(page)
に変換します。
書き換えルールで QSAフラグ を使用する必要があります。元のURLのクエリ文字列を保持し、新しいURLに追加します。書き換えルールは次のようになります。
RewriteRule ^(|/)$ index.php?url=$1 [QSA]
RewriteRule ^([a-zA-Z0-9_-]+)(|/)$ index.php?url=$1 [QSA]