2012-02-27 12 views
1



URLからindex.php?dir =を隠す作業書き換えルールがあります。
だから例えば私はそれが書き換えルールがスラッシュなしで動作しない

www.example.com/folder/index.php?dir=dir1/ 

とその罰金にそれを書き換えて

www.example.com/folder/dir1/ 

をしよう!

トラブルは、私はURLから最後のスラッシュを削除する場合である、すなわち

www.example.com/folder/dir1 

それはリダイレクトループに入ります!

マイ完全 htaccessファイルは、次のとおりです。

Options +FollowSymLinks 

RewriteEngine On 
RewriteBase /folder 

RewriteCond %{ENV:REDIRECT_STATUS} 200 
RewriteRule .* - [L] 

RewriteCond %{QUERY_STRING} ^dir=(.*)$ [NC] 
RewriteRule^%1? [L,R=301,NE] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} -d 

RewriteRule ^(.+)/? index.php?dir=$1 [L,QSA] 

アドバイスをしてください?

+0

わからない

RewriteRule ^(.+)/? index.php?dir=$1 [L,QSA] 

を置き換えますが、変更してみてくださいしなければならなかった 'のRewriteRule ^(。+)/? index.php?dir = $ 1 [L、QSA] 'から' RewriteRule ^(。+)? index.php?dir = $ 1 [L、QSA] ' –

+0

最後のルールで' RewriteCond%{REQUEST_FILENAME}!-d'を意味しましたか? – anubhava

+0

@Ofir:いいえ、助けにはなりませんでした!状態はそのままです.. – Umer

答えて

0

それがわかりました!

は...貢献のため

RewriteRule ^(.*)? index.php?dir=$1/ [L,QSA] 

みんなありがとうと

+0

' ^(。*)? 'は' ^(。+)/? 'とv.vを意味するので、regexpは意味を持ちません。私はまた、あなたがdirパラメータの後ろに/をなぜ必要としているかもわかりません。 – TerryE

+0

これもループの説明ではありません。 – TerryE

+0

私の推測では、 '$ 1 /'は主に動作させました!私のPHPはディレクトリの最後に/が必要です。それがなければ、index.phpというディレクトリが再びリダイレクトを開始しました。今、魅力的なものとして働いています。 – Umer

1

(i)私はRewriteBase /papersについて混乱しています。これはDOCROOT/papers/.htaccessでのみ意味があります。これは、場所と "フォルダ" ==論文ですか?もしそうでなければ、私は書き換えエンジンが混乱しているのに驚くことはありません。 (ii) `%{REDIRECT_STATUS}は、MultiViewsまたはDirectoryIndexが一致する場合、デフォルトを評価するためにサブクエリルックアップでは200ではありません。

あなたが何かを行うので、前に:それを修正しない場合は、あなたのベースが正しいこと、および

  • 検証。
  • 使用しない場合は、Options -MultiViewsを使用してください。
  • DirectoryIndexが指定されているかどうかを調べるには、システム、vhost設定、およびDOCROOT/.htaccessを確認してください。 (唯一のすべてがこのようなディレクティブのためにスキャンされ、最低.htaccessから取られ、書き換えルールとは異なり。)
  • RewriteCond %{ENV:REDIRECT_END}%{IS_SUBREQ} true 
    

    RewriteCond %{ENV:REDIRECT_STATUS} 200を交換し、あなたがしたい任意のルールにフラグE=END:trueを追加(Apache 2.4 [END]フラグに似ています)余分な%{IS_SUBREQ}は、サブクエリでルールが実行されないようにします。 実際にはあなたがしていることを知っていない限り、これは起こりたくありません。

関連する問題