2012-03-20 12 views
0

私はこれに対する答えを見てきました。.htaccess RewriteRuleのアドバイス

RewriteEngine On 
RewriteBase /mysite/ 
RewriteRule ^(superv/)([^\?/]+)$ $1\?p=$2 [NC] 

しかし、それは働いていない:私は何をしたいか

は、ここで私は昨日から思い付いた最高の式だ

http://localhost/mysite/superv/?p=something

http://localhost/mysite/superv/somethingを交換です。

私はこのラインが魅力のように働いているので「でRewriteBase」ブツが問題とは何の関係もないと思う:

RewriteRule ^(javascripts/main\.js)$ $1\.php [NC]

編集:右Rekire、コピー&ペーストしながら、間違いでしたコード。私は今質問を解決しました。

EDIT2:ここではApacheのログに表示されるエラーがあります:

[Tue Mar 20 20:26:01 2012] [error] [client 127.0.0.1] 
Request exceeded the limit of 10 internal redirects due to probable configuration error. 
Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace. 

私は "ルーピング" と私が引用された問題を推測している:

Looping occurs when the target of a rewrite rule matches the pattern. 
This results in an infinite loop of rewrites 
+0

あなたの 'RewriteRule'" superv "に書き込むが、あなたは" admin "というURLを返そうとしているとうまくいかない。 – rekire

+0

解説者は編集について通知されませんのでご注意ください。私はあなたがphpファイルのパスinstatにユーザーをリダイレクトしようとしていることについては疑問に思っています。これはあなたの問題かもしれません。 – rekire

+0

置換文字列の文字をエスケープしないでください。 '$ 1?p = $ 2'。また、なぜ 'http:// localhost/mysite/javascripts/main.js'を' http:// localhost/mysite/javascripts/main.js.php'に[内部で]リダイレクトしていますか? – TerryE

答えて

1

RewriteRule (.*)(superv/)?(.*) $1$2index.php?p=$3 [NC,QSA] 

「無限ループ」を壊れているようです。

1

これは、ように見えます私のために働く。

RewriteRule ^(superv/)([^\?/]+)$ $1?p=$2 [R,NC] 

内部リダイレクトを実行する場合は、Rを削除します。何らかの理由で、この式は、働いていた(内部リダイレクト)については

+0

こんにちは、あなたの回線が動作しますが、私はRを削除した後、同じ "500内部サーバーエラー"と "要求が限界を超えました"というエラーが表示されます。 –