0

localhost に短縮 URL を使用するサイトがあります。

http://localhost/Portal/mysite/profile.php?id=1

http://localhost/Portal/mysite/profile/1/this_is_id

.htaccess以下を使用して

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On

RewriteBase /

RewriteRule ^profile/([0-9]+)/.*$  /Portal/mysite/profile.php?id=$1 [QSA,L,NC]

しかし、代わりにURLを次のようにする必要がありますhttp://localhost/Portal/mysite/this_is_id

これはすべてlocalhostにあるため、 表示され.comませんが、サイトファイルは. とにかく簡単な提案で結構です、ありがとうmysitemysite/index.phpmysite/profile.php$id

アップデート


わかりました、私はあなたの両方が求めたようにしましたが、これはユーザーをインデックス ページからプロファイル ページに送信する機能であり、両方の要求を実行したにもかかわらず、それを変更する方法がわかりません。

    // sql query goes here. 
    foreach ($stmt as $row) {
    $url = "/profile/$row[id]/".preg_replace('/[^a-zA-Z0-9-_]/', '-', $row['company']);  

        echo "<h4><a href=\"$url\" class=\"urln\">". substr($row['company'], 0,26)."</a></h4>
                    ";

    }

エコーはリンクです。そのリンクを押すと、見つからないページに移動します

更新 2


ここに画像の説明を入力 これは私のディレクトリの画像です。リンクは index.php にあります。クリックすると、上記のすべてのファイルが置かれている profile.php に移動します。WAMP/www/Portal/mysite

4

2 に答える 2

1

これを試して:

#for subdirectory
RewriteBase /Portal/mysite/
#for localhost
#RewriteBase /
#RewriteRule ^profile/([0-9]+)$ profile.php?id=$1 [QSA,L,NC]
#RewriteRule ^profile/([0-9]+)/([a-zA-Z0-9\-]+)$ profile.php?id=$1 [QSA,L,NC]
RewriteRule ^profile/([a-zA-Z0-9\-]+)$ profile.php?id=$1 [QSA,L,NC]

.htaccessおよびディレクトリprofile.php内。Portal/Site

アップデート:

foreach ($stmt as $row) {
    $url = "/profile/".preg_replace('/[^a-zA-Z0-9-_]/', '-', $row['company']) . "-" . $row[id];
    echo "<h4><a href=\"$url\" class=\"urln\">". substr($row['company'], 0,26)."</a></h4>";

}

profile.php

var_dump($_GET);

if(isset($_GET['id'])) {
    $params = explode('-', $_GET['id']);
    $id = (int)array_pop($params);

    var_dump($id);
}

.htaccess

RewriteEngine On
RewriteBase /Portal/mysite/
RewriteRule ^profile/([a-zA-Z0-9\-]+)$ profile.php?id=$1 [QSA,L,NC]

リンク ( fe: localhost/Portal/mysite/profile/This-is-name-12) を実行すると、次の結果が得られます。

array (size=1) 'id' => string 'This-is-name-12' (length=15)

int 12

12あなたのプロフィールIDです。

于 2013-03-28T20:22:43.600 に答える
0

試す:

RewriteRule ^([0-9]+)$  profile.php?id=$1 [QSA,L,NC]

ルール ( .htaccess) が/Portal/mysite/ディレクトリにあり、profile.phpそこにもある場合。

于 2013-03-28T19:54:10.123 に答える