私のサイトには、次のような書き換えルールがあります。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ open.php?url=$1 [L]
(上にもいろいろありますがこれが最後のルールです)
それは非常にうまく機能します。
ただし、達成したいのは、URLが次の場合です。
http://site.com/first/second
次に、リダイレクトしたい
open.php?url=$1&open=$2
問題は、両方を同時に使用して、 site.com/foo と site.com/foo/bar が機能するようにすることです。また、両方のルールを同時に実行するために、末尾のスラッシュが常に存在することを避けたいと考えています。
ある種の rewritecond で末尾のスラッシュをチェックする方法がある場合
どんな助けでも大歓迎です:)
解決した
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/(.*)/(.*)$
RewriteRule ^(.*)$ open.php?url=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /(.*)/(.*)
RewriteRule ^(.*)/(.*)$ open.php?url=$1&open=$2 [L]
私が追加しなければならなかったのRewriteCond %{REQUEST_URI} !^/(.*)/(.*)$
は、最初のルールだけでした!