2011-01-31 1 views
0

私は、任意の文字(。*)に一致するルールを書き込むと、firebugがjavascriptの構文エラーをスローします。.htaccessはJavaScriptエラーの原因となる書き換えルールですか?

私が持っているルールは次のとおりです。

RewriteRule ^news/story/(.*)? index.php?page=viewNews&story=$1 [L,NC] 

表示されるエラーは次のとおりです。私は、ルールを変更した場合は

syntax error 
[Break On This Error] <!DOCTYPE html PUBLIC "-//W3C//DTD XHT.../xhtml1/DTD/xhtml1-transitional.dtd"> 

があることを:

RewriteRule ^news/story/(\d+)? index.php?page=viewNews&story=$1 [L,NC] 

それは、正常に動作しますが、明らかに数字のためだけです。私はそれもテキストのために働きたいので、ワイルドカードです。

私がindex.phpに行くのなら、page = viewNews & story = test + storyページに直接アクセスしても問題ありません。

+0

ページ上のリンクされたスクリプトファイルのいずれかのhtmlページが返された場合は、firebugを参照してください。 –

+0

Firebugはリンクされたスクリプトを指します。そのスクリプトを取り出すと、次のリンクされたスクリプトなどで同じエラーが発生します。私はすべてのjavascriptファイルを取る場合、それは動作します。しかし、私は上記のようにURLに直接行くとエラーはないので、javascriptはここには誤りがないとは思わない。 – psynnott

答えて

4

あなたのjavascriptも/ news/story/*パスに含まれていると思われ、これらのリクエストが書き換えられています。

あなたは、ファイル(またはディレクトリ)が存在しない場合にのみ書き換えます書き換え条件を設定することにより、この問題を解決することができます

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !=/favicon.ico 
RewriteRule ^news/story/(.*)? index.php?page=viewNews&story=$1 [L,NC] 
+0

javascriptファイルは/ scriptsに保存されています。私はあなたの条件を与えましたが、残念なことに同じことをやっています。 – psynnott

+0

固定されました。あなたは遠く離れていなかった!ルールは正しかったが、私のヘッダーファイルはスクリプトフォルダへの相対リンクを持っていた。もちろん、書き換えルールの影響を受けていた。 – psynnott

+0

上記のように書き換え条件を保持したいと思うかもしれませんが、物理的なファイルから書き直したい場合は除きます。 – HorusKol

0

もう働かが

RewriteCond %{QUERY_STRING} !rewrite=no [NC] 

にこれを加えるだろうあなたの条件

あなたがリダイレクトしたくないファイルにパラメータを追加

<script type="text/javascript" src="ajax.js?rewrite=no"></script> 
関連する問題