2

htaccess からすべてのデータを取得したい ばかげたタイプの質問であることはわかっていますが、htaccess ルールのリストからユーザー フレンドリーなリンクのみを取得できるかどうかを知りたいだけです

RewriteRule ^login$ common/login.php [L]
RewriteRule ^forgot-password$ common/forgotpassword.php [L]
RewriteRule ^page/(.*)$ common/page_content.php?pageslug=$1 [L]
RewriteRule ^activate/([a-zA-Z]+)/([0-9]+)/(.*)$ common/activate.php?type=$1&userid=$2&activationcode=$3 [L]
RewriteRule ^forgot-password$ common/forgotpassword.php [L]

このデータを次の形式にしたい

$data->array(); //is array
$data[0] = login common/login.php 
$data[1] = forgotpassword common/forgotpassword.php or simlar to this 

または、サイト内のすべてのタグをパス名とともに取得する方法を提案してください。htaccess に基づいてサイトマップを動的に構築したい

4

2 に答える 2

0
RewriteRule ^(.*?)/(.*?)$ common/$1.php?getValues=$2 [L,NC]

このコードを使用して、この例で適切な URL を作成できます。

行きたい場合は、common/forgot-password.php yoururl.com/forgot-password for go page "aboutus" yoururl.com/page/aboutus その意味: common/page.php?getValues=abouts でページスラッグを取得できます$_GET['getValues'] または複数のデータの場合

yoururl.com/activate/type/userid/key meanÇ: common/activate.php?getValues=type/userid/key および爆発で解析:

$datas=explode("/",$_GET['getValues']);
echo "type: $datas[0]
userid: $datas[1]
key: $datas[2]";
于 2012-10-15T11:26:02.640 に答える
0

テストされていませんが、次のようなものを探していると思います:

function rewriteLink($link)
{

    if(preg_match('/^login$/',$link)){return "common/login.php";}
    if(preg_match('/^forgot-password$/',$link)){return "common/forgotpassword.php";}
    if(preg_match('/^page/(.*)$/',$link,$m)){return sprintf("common/page_content.php?pageslug=%s",$m[1]);}
    if(preg_match('/^activate\/([a-zA-Z]+)\/([0-9]+)\/(.*)$/',$link,$m)){return sprintf("common/activate.php?type=%s&userid=%s&activationcode=%s",$m[1],$m[2],$m[3]);}
    return $link;
}

psあなたの.htaccessファイルには2つの重複したforgetpassword.php re-writeステートメントが含まれています.htaccessファイルに基づいていますが、コードロジックから2番目の冗長インスタンスを省略しています。

于 2012-10-15T12:45:14.787 に答える