2011-05-04 197 views
0

我想要將所有請求更改爲擴展名爲.user.js的文件,並將其製作爲.php文件。 我有這樣的代碼:Apache mod_rewrite更改文件擴展名

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteRule /([^/]*)\.user\.js$ $1.php [R,NC] 

</ifModule> 

,不幸的是不起作用。 我知道mod_rewrite並加載,因爲,如果我這樣做:

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteRule /([^/]*)\.user\.js$ $1.php [R,NC] 
s 
</ifModule> 

它返回500狀態代碼,所以我相信我的問題是在正則表達式。我想要什麼
例子:

GET /foo/bar/preetyuserscript.user.js 

成爲

GET /foo/bar/preetyuserscript.php 

回答

2

我認爲這將工作:

RewriteRule ^(.*?)\.user\.js$ $1.php 

如果沒有,你繼續看到500錯誤有查看錯誤日誌。總是第一個地方檢查。

+0

它工作,THX。我甚至改變它到這個加速過程:^(。*)\。user \ .js $ $ 1.php我已經嘗試了一個幾乎像這樣但沒有'\'。可能是瀏覽器緩存故障。我只提到錯誤500,以便我可以證明mod_rewrite可用 – brunoais 2011-05-04 17:12:56

1

正確的重寫規則應該是:

RewriteRule ^([^.]*)\.user\.js$ /$1.php [R,L,NC] 
+0

不起作用。該重寫將請求發送到服務器的根目錄。我不想那樣。 – brunoais 2011-05-04 17:09:38

+0

您確定在我的測試中,這個URI'/ foo/bar/preetyuserscript.user.js'變成了'/ foo/bar/preetyuserscript.php'。你的.htaccess文件中有其他規則嗎?你也可以粘貼access.log片段。 – anubhava 2011-05-04 17:14:34