2

これを行う私の試みは...

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule \.js$ js.php [L]   ## This line is the one I tried to add
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

タグを使用する場合は、<script type='text/javascript' src='http://www.domain.net/myfile.js'></script>通過させたいと思いjs.phpます。

js.php を使用してファイルを処理しますheader('....'); echo file_get_contents('myfile.js');

これを行うために非常に多くのことを試みましたが、以前にプロジェクトでこれを行ったことがありますが、やり直さなければならないので、今はどこで覚えていません:)

それが理にかなっていることを願っています...

4

1 に答える 1

3

次の書き換えルールを追加できます。

RewriteRule ^([^\.]+)\.js$ js.php [NC,L]

代わりに :

RewriteRule \.js$ js.php [L]   ## This line is the one I tried to add

結果は次のとおりです。

http://www.domain.net/myfile.js => http://www.domain.net/js.php
http://www.domain.net/foo/bar/myfile.js => http://www.domain.net/js.php

または、次のようにすることもできます。

RewriteRule ^([^\.]+)\.js$ $1.php [NC,L]

結果は次のとおりです。

http://www.domain.net/myfile.js => http://www.domain.net/myfile.php
http://www.domain.net/foo/bar/myfile.js => http://www.domain.net/foo/bar/myfile.php

使用されるRewriteRule フラグに関するいくつかの説明:

  • NC : [NC] フラグを使用すると、RewriteRule が大文字と小文字を区別しない方法で照合されます。つまり、一致した URI で文字が大文字または小文字のどちらで表示されるかは問題ではありません。
  • L : [L] フラグにより​​、mod_rewrite はルール セットの処理を停止します。ほとんどの場合、これは、ルールが一致した場合、それ以上のルールは処理されないことを意味します。これは、Perl の最後のコマンド、または C の break コマンドに対応します。このフラグを使用して、それ以上のルールを考慮せずに現在のルールをすぐに適用する必要があることを示します。
于 2012-07-02T14:15:18.593 に答える