2009-07-10 24 views
1

私はこのURL書き換えしようとしています:? http://www.foo.com/bar/baz.htaccessの書き換え[ルールのヘルプ]

へのindex.phpを、Q = $ 1 & D =バズ

ここで、barは固定値ではなく、bazです。

RewriteRule ^(.*)\/baz$ index.php?q=$1&d=baz [L,QSA] 
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

私はちょっと作品の上に持っていますが、残念ながら壊れ何すべてのサイト(CSS/JavaScriptの)中に含まれるが、妙にすべてのページが動作:/

このDrupalがインストールされて、(そう2行目を残す必要があります)。

UPDATE

これは実際に、私はそれが正しく私の書き換えをやっているように見える

RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_URI} !=/favicon.ico 
    **RewriteRule ^(.*)/details index.php?q=$1&details=true [L,QSA]** 
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

を含めるのを忘れ、唯一の問題は、それが今、他の条件文を無視していますで役立つかもしれないが、それはのIE存在しているファイル(つまり、css、js)を書き換えようとしているときに、それを書き直そうとしています。

私の行(星のあるもの)がなくてもサイトは問題ありませんが、変数とページは動作しますが、CSSなどの静的ファイルも書き直されています。

ありがとうございます。

シャディ

+0

第2のルールは何ですか? – Greg

+0

2番目のルールは、すべてのURLを書き換えてフレームワークに送信するdrupalルールです。 基本的に、私はbazで終わるURLをキャプチャし、drupalのindex.phpにページの "bar"(常に変更されている)とd = baz(固定)のget変数を設定して送信する必要があります。 。それ以外の場合(bazが存在しない場合)、通常通り続行します。 –

答えて

0
RewriteRule ^(.*)/details index.php?q=$1&details=true [L,QSA] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_URI} !=/favicon.ico 
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

これは最終的に働いていたものです。それはちょうどルールの並べ替えが必要でした...

1

条件は、直後の最初のルールにのみ適用されます。条件ラインを複製してみてください。

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/details index.php?q=$1&details=true [L,QSA] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !=/favicon.ico 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 
+0

ほとんどの場合、私はルールの位置を変更したので、これを投稿しました。これは順序のために矛盾しているようですが、上記のルールを条件付き要素なしで実行すると、とにかく助けてくれてありがとう! :) –

関連する問題