1
<h1><a href="profile.php?id=' . $id . '" target="_self">' . $name. '</a></h1>

上記は私のprofile1.phpファイルを指すリファレンスです。このファイルはindex.phpと呼ばれます。現在、URLは次のように表示されます。

http://www.domain.com/interact/profile1.php?id=36

.htaccessファイルを実装してURLを書き換えてみました。私は多くの組み合わせを試しましたが、それらのほとんどは500エラーを出し、いくつかはURLを書き直しませんでした。これは私が使用している.htaccessファイルであり、URLを変更することはありません。

URLをhttp://www.domain.com/interact/profile/36のようにしたい

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ profile1.php/$1 [QSA,L]
</IfModule>

私はこれが非常に基本的な質問であることを知っていますが、私はそれに固執し、基本的なチュートリアルを読んだようですが、それを適切に実装することができません。

ファイルindex.php、profile1.php、および.htaccessは、interactという名前のフォルダーにあります。

phpまたは.htaccessファイルに必要な変更を教えてください。

4

2 に答える 2

1

現在、URL は次のように表示されます。http://www.domain.com/interact/profile1.php?id=36

...

URLを次のようにしたいhttp://www.domain.com/interact/profile/36

ステップ1:

コンテンツを次のようなリンクに変更します。

<h1><a href="profile/' . $id . '" target="_self">' . $name. '</a></h1>

このようにして、リンクをクリックすると、URL アドレス バーに表示される URL は次のようになります。http://www.domain.com/interact/profile/36

ステップ2:

次に、これらのルールを使用して内部的に元に戻す必要があります。

RewriteEngine On
RewriteBase /interact/
RewriteRule ^profile/([0-9]*) profile1.php?id=$1 [L,QSA]

Google インデックス ボットなどの外部リンクを新しい URL に向けるには、次の URL も追加する必要があります。

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /interact/profile1\.php\?id=([0-9]*)
RewriteRule ^ http://www.domain.com/interact/profile/%2 [L,R=301]
于 2012-09-29T19:36:54.123 に答える
0

これを試して

  RewriteRule ^interact/profile1.php/(.*)$ interact/profile1.php?id=$1 [L]

make QSA モディファイアが何をするかわからないので、削除します。知っている方は使ってください)

于 2012-09-29T19:16:47.957 に答える