1

書き換えルールにIIRFv2.1を使用しています

私はこのようなルールで書いていますが、それは機能していません

RewriteRule ^(prod|pag|staf)/([A-Za-z0-9-]+)/?$ $1.php?iid=$2 [QSA,L]

次のURLを使用する場合

http:// localhost / prod / 22 / new-item

実際のURLが必要なのは http://localhost/prod.php?iid=22です

はい動作バージョンは

RewriteRule / ^(prod | pag | staf)/([A-Za-z0-9-] +)/?$ /$1.php?iid=$2 [QSA、L]しかし、ここでの問題はすべてのスタイルとインクルードファイルです含まれていません。

ありがとう

4

3 に答える 3

1

あなたの正規表現では、 new-item が最後のスラッシュに続くことを許可していません。

RewriteRule ^(prod|pag|staf)/([A-Za-z0-9-]+)/?$ $1.php?iid=$2 [QSA,L]

パターンを終了する /?$ シーケンスは、... スラッシュ (おそらく) と文字列の末尾です。ただし、URL はスラッシュで終わっていません。スラッシュとテキスト「new-item」で終わります。

それをキャプチャする正規表現はのようになります。

RewriteRule ^(prod|pag|staf)/([A-Za-z0-9-]+)/? $1.php?iid=$2 [QSA,L]

...つまり、オプションのスラッシュの後に何が来るかは気にしません。また、QSA を使用しているため、元の URL のクエリ文字列が送信 URL に追加されます。

しかし、それは基本的に、着信 URL 要求の「新しい項目」部分を破棄することになります。これを行うかどうかはわかりません。

于 2010-01-21T20:09:18.130 に答える
1

このようにURLを書くだけです

RewriteRule ^/(prod|pag|staf)/([A-Za-z0-9-]+)/?$ /$1.php?iid=$2 [QSA,L]

スタイルシートやその他のインクルードの前に / を置きます

お気に入り

古いスタイルシートがこのように含まれている場合

   style/style.css

に変更します

  /style/style.css

画像とリンクも同様です。これがうまくいくことを願っています。

于 2010-01-21T20:24:16.963 に答える
0

URLに常に数字とスラッグが含まれている場合、この正規表現は各部分を取得します:

^(prod|pag|staf)/([0-9]+)/([A-Za-z0-9-]+)/?
于 2010-01-21T20:02:10.243 に答える