1

次のコードを使用して、すべてのページを .php から単純な / に変更しています

RewriteRule ^(.*)/$ $1.php [L]

www.site.com/clubs.php や www.site.com/training.php ではなく、www.site.com/clubs/ または www.site.com/training/ として表示されるようになりました

クラブ内で (データベースのデータを使用して) クラブを表示すると、ページは www.site.com/clubs/my-club/
のように表示されます。 URL フィールド。

次のコードでこれを取得できます。ただし、$_GET['club'] メソッドを使用してエコーすると、my-club ではなく my-club.php が表示されます。

RewriteRule ^clubs/([^/]*)$ clubs.php?url=$1 [L]

URL の末尾の / が .php に変更されているようです

4

2 に答える 2

2

さまざまな方法で必要なものを達成できますが、それが私が行う方法です。次のように、ルールの順序を変更します。

RewriteRule ^clubs/([^/]*)/$ clubs.php?url=$1 [L]
RewriteRule ^(.*)/$ $1.php [L]

パターンの一部だと思うので、最初のルールに末尾のスラッシュを追加しました。もし私が間違っていたら、あなたはそれを削除することができます。

元のリクエスト URL から任意のクエリ文字列を追加する場合は、QSAと一緒にL使用する必要があります。[L,QSA]

于 2013-03-28T20:41:15.803 に答える
0

これを試して:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z\-]+?)/([0-9a-zA-Z\-]+?)?$ $1.php?url=$2

あなたは何を実行していますか:

http://localhost/club/

結果は

http://localhost/club.php

あなたは何を実行していますか:

http://localhost/club/my-club

結果は

http://localhost/club.php?url=my-club
于 2013-03-28T20:48:40.137 に答える