2012-04-01 5 views
0

この書き換えルールはdomain.com/newsでもうまく機能しますが、domain.com/news/2012/party/zekeなどの変数に複数のレベルを解析できるようにしたいと思います"ディレクトリ"からmod_rewriteのx個の変数を取得

私は正規表現を試してみましたが、ひどく失敗しました。ここ

RewriteEngine on 
RewriteBase/
RewriteRule ^([^/\.]+)/?$ page.php?page=$1 [L] 

も試した解決策: mod_rewrite with multiple variables

using mod_rewrite to simulate multiple sub-directories

// EDIT:それは私がちょうどレベルごとに1つのルールを追加することができそうですが、それはすべてのレベルを行う一つのルールを持っているpossibelされますか?

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

RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /page.php?page=$1&sub=$2 [L] 

答えて

1

再帰ルールは使用できますが、再書き込みのすべての部分はデータです。だから、どのように変数に名前を付けるかわからないので、クエリ文字列に変換することができます。

あなたが/section/news/year/2012/user/zeke/を持っていた場合、あなたが使用することができます(をテストNOT): -

RewriteRule ^section/\w+/([^/]+)/([^/]+)/(.*)$  news/$3?$1=$2 [NC,N,QSA] 
RewriteRule ^section/(\w+)/?$      page.php?page=$1 [NC,QSA,L] 

= 2012 &このpage.php `に書き換えてしまうはずですページ=ニュース&年ユーザー= ZEKE

あなたがしようとしているのは、要件を変更して上記のバージョンを使用するか、PHPのすべてのページにそれらを渡してPHPで作業する必要があります。

+0

ありがとうございました!私は自分のCMSをアップグレードしており、これは大きな助けになるでしょう。 – jerrygarciuh

関連する問題