2017-07-19 21 views
0

我有一個包含一堆javascript文件的目錄。我需要使用PHP生成其中一個文件。所以我改名爲myfile.jsmyfile.js.php,並將此規則.htaccess.htaccess基於文件是否存在重寫

RewriteRule myfile\.js$ myfile.js.php 

這樣,javascript文件的URL仍是http://www.example.com/directory/myfile.js當我服務於靜態文件,就像它是。

規則我有工作。但是我不喜歡硬編碼文件名。我想寫一條規則,如果任何filename.js和文件​​(注意.js.php擴展名)存在請求,我想將filename.js重寫爲filename.js.php。

+0

如果您調用PHP腳本中的JS文件,爲什麼PHP中不使用邏輯..看來愚蠢到試圖處理與的.htaccess。 –

+0

@RyanChurchill我不是從PHP腳本調用JS文件。 Web瀏覽器請求http://www.example.com/directory/myfile.js。該網址遍佈全球,難以改變。使用.htaccess,我可以保留舊的URL,但現在可以動態生成我返回給用戶的腳本。 – George

+0

爲什麼不創建一個php文件來處理這些請求。如handler.php,然後當瀏覽器請求handler.php?jsfile = myfile.js時,您可以輕鬆地通過處理程序處理請求和邏輯。你可以在這個php文件中編寫案例來保持路徑隱藏。這就是我將如何處理它.. –

回答

0

添加此規則的htaccess

RewriteCond $1.js.php -f 
RewriteRule ([\w\-]+)\.js$ $1.js.php [L] 
+0

謝謝Sreedev。我可以把這個規則放在我的頂級.htaccess中,並在任何子目錄中使用.js.php文件嗎?或者我需要將它與文件放在同一個目錄中? – George

+0

很高興工作。你應該把它放在包含js文件的目錄中。 –