を高く評価された瞬間
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ post.php?id_name=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ cats.php?cat_label=$1 [L,QSA]
で私が使用している.htaccessファイルでのようにときにフラグ[L]
は、「最後の」を意味しますルールが一致した場合、テストされた最後のリライトルールです。 2つのタイプのリダイレクトを区別する方法が必要です。ここではあなたがそれを行う可能性がある二つの方法があります:
(1)ではなく、あなたのカテゴリーで、あなたのポスト名のすべてでダッシュを持っているので、自分の与えられた例の両方が与えられたとして働く:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^-]+)$ cats.php?cat_label=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ post.php?id_name=$1 [L,QSA]
(2)カテゴリのディレクトリを追加して、魔法のキャラクターが何も起こらないようにします。これは間違いを招く可能性があります。あなたは既に上記の可能性に直面しています。ここではそれがどのように見えるかです:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^cats/(.*)$ cats.php?cat_label=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ post.php?id_name=$1 [L,QSA]
両方のケースでは、我々は[L]
ASTとしてフラグを立てる、最初のより具体的なバージョンと一致します。それから、私たちは最後に広い、キャッチオールを持っています。
+1は創造的な回避策では合意しましたが、option2はより良いです –