2011-05-04 178 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