2016-08-14 7 views
3

私が達成しようとしているもののために.htaccessファイル内で適切な構造を使用することができませんでした。htaccessを使って特定のjavascriptファイルをレンダリングする方法

私がしたいことは、フォルダから(そしてそのフォルダのみ)呼び出されるjavascriptファイルがPHPファイルによって生成されることです。私は拡張子が.phpであるとか、複数のファイルを作成したくないと思っています。

https://www.domain.com/loads/js.php 

は、いずれかのPHPの$ _GETメソッドを使用するように見ていない:

例は

https://www.domain.com/loads/923as0d9f89089asd.js 

は、その後のようなものに送られるだろうです。基本的にphpファイルはファイル名を検出し、そこから何をするのかを行います。

.htaccessファイル内でこれを設定するにはどうすればよいでしょうか?

ありがとうございます!

+0

それらを別のPHPファイルにリダイレクトしてそこから提供してください –

+0

あなたはすでに書き換えとリダイレクトのhtaccessの概念を見てきましたか? – KumarM

+0

これはあなたを助けるかもしれません:http://htaccesscheatsheet.com/#rewrite-and-redirection。私にはたくさんの例があります。 – KumarM

答えて

1

loads/.htaccess内部:インサイド

RewriteEngine On 
RewriteBase /loads/ 

RewriteRule ^[\w-]+\.js$ js.php [L,NC] 

js.phpあなたは、元のJSファイル名を取得するために$_SERVER["REQUEST_URI"]を使用してコンテンツを提供する必要があります。

+0

かなり近いです。私が/loads/jaklsdjfkljklasdf.jsを使用するとき、私は見つけられませんが、私が/jaklsdjfkljklasdf.jsを実行すると、実際には/loads/js.phpファイルのURLを取得できます。 /loads/jojklajklsdjfkl.jsではなく/jaklsdjfkljaklsdf.js) – MrTechie

+0

上記のルールを 'loads/.htaccess'に置くと、/ load /ディレクトリから来て、私は答えて示唆しています。実際には '/ loads/jaklsdjfkljklasdf.js'のために動作します。 – anubhava

+1

完璧に動作します!本当にありがとう。 – MrTechie

0

あなたは(、テストされていない変更が必要な場合があります)このようなものを持つことができます:

RewriteEngine On 
RewriteCond %{REQUEST_URI} ^/loads/(.*).js$ 
RewriteRule ^/loads/(.*).js$ http://www.domain.com/loads/js.php?file=$1 [P] 

そして、あなたのjs.phpスクリプトは内部的に呼び出されます、それはGETからJSファイル名を受け取ることになりますが、それはで表示されていませんユーザー。
これは[P]フラグとともにmod_proxyを使用します。ここ
詳細情報:このルールを使用することができますhttps://httpd.apache.org/docs/current/rewrite/flags.html#flag_p

+0

PHPファイルへのリダイレクトはありません。 jsリファレンスをphpファイルに渡し、phpファイルでjsをレンダリングするだけです。 – MrTechie

+0

私のexempleコードは目に見えないリダイレクトを行います。ユーザーのブラウザには、例えば次のようなURLが表示されます:www.domain.com/loads/myfile.js – Marc

+0

いいえ、あなたのサンプルは実際にphpファイルにリダイレクトされ、js.php ?file = xxxx – MrTechie

関連する問題