1

現在RewriteRuleは失敗しました/apis(index.php?url = apisを返す必要があります)

RewriteRule ^api\/?([^\/]*)$ index.php?api&url=$1 [QSA,L]
RewriteRule ^([^.]*)$ index.php?url=$1 [QSA,L]

有効:

  • / api return index.php?api&url =[empty]
  • / api / user return index.php?api&url = user

失敗した:

  • / apisはindex.php?api&url = sを返しますが、代わりにindex.php?url=apisを返す必要があります

更新:/apiスラッシュで始まらないifの後の文字は、 /index.php?url =を返す[any character]必要があります-/apirf8ty76はindex.php?url=apirf8ty76を返す必要があります

/ apiは引き続きindex.php?api&url =[empty]を返す必要があり、/ api / userはindex.php?api&url=userを返す必要があります

4

2 に答える 2

1

条件をこれに変更して、機能させます。

RewriteRule ^api(?:/([^/]*))?$ index.php?api&url=$1 [QSA,L,NC]

RewriteRule ^([^.]*)$ index.php?url=$1 [QSA,L]
于 2012-09-20T12:27:19.787 に答える
1

次のように、最初の正規表現で否定的な先読みを使用します。

RewriteRule ^api(?!s)\/?([^\/]*)$ index.php?api&url=$1

それはあなたが望むことをするはずです。

于 2012-09-20T09:13:42.250 に答える