2

私のサイトには、次のような書き換えルールがあります。

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} !^/(.*)/(.*)$は、最初のルールだけでした!

4

0 に答える 0