0

私は現在mod_rewriteルールを使用しています:

RewriteRule ^(.+)/?$ page.php?slug=$1 [L]

これは、/page負荷をかけるために正常に機能しますpage.php?slug=page

しかし、私はURLをしたい:

/cat/page

ロードする

page.php?slug=page

そしてURL

/cat

ページをロードするには

cat.php?slug=cat

これは可能ですか?1つのpage.phpでそれを実行し、ifを使用してどのページにするかを決定できますが、カテゴリページとページページのコードは非常に異なるため、それらを別々に保持したいと思います。

ありがとうございました、

サム

更新:要求に応じて、より多くの例。

/food/pizza負荷page.php?slug=pizza

/food負荷cat.php?slug=pizza

/animals/pigs負荷page.php?slug=pigs

/animals負荷cat.php?slug=animals

4

1 に答える 1

2
RewriteEngine On

RewriteCond %{REQUEST_URI} !=page.php
RewriteCond %{REQUEST_URI} !=cat.php
RewriteRule ^([^/]+)/([^/]+)/?$ cat.php?slug=$2 [L]

RewriteCond %{REQUEST_URI} !=page.php
RewriteCond %{REQUEST_URI} !=cat.php
RewriteRule ^([^/]+)/?$ page.php?slug=$1 [L]

パラメータの名前がわかりません。例がcat.php一貫page.phpしていないため(場合によっては一貫性がslugありcatますか?)、とにかくそれは小さな問題です。

説明:RewriteCond確認page.phpしてcat.phpください。書き換えられません。次に、PHPスクリプトを修正する要求を渡す仮想ディレクトリの1つまたは2つのレベルに一致する正規表現があります。

編集:ではありません。それは本当に正しいスクリプトにそれを渡します:-)

于 2012-11-20T20:59:30.557 に答える