2016-01-22 72 views
1

我目前的应用程序使用codeigniter,其中一个方法将输出将提供可以包含在我的其他域名网站之一的JavaScript代码。url重写模式不起作用

我的请求的URL会像

http://domain.com/widget/ID.js

将被重新写为

http://domain.com/home/widget/ID

这里是我的代码,但不工作

RewriteEngine on 
RewriteRule ^widget/([a-z0-9-]+)\.js/$ home/widget/$1 [NC] 

任何人都可以帮助我,谢谢你。

+1

你有规则倒退。 –

+0

好的,你能帮我一个例子。 – Balaji

+1

'RewriteRule^home/widget /([a-z0-9 - ] +)$ /widget/$1.js [NC,L]' –

回答

1

如果你想将/widget/ID.js重写为/ home/widget/ID,那么你的原始规则是正确的(它不是反向的)。它可能只是需要一些微调。假设你可以成功地点击重写目标URL?

http://domain.com/home/widget/ID

然后,我会尝试添加斜线开头你的模式和子都在你的图形除去最后的斜线:

重写规则^ /空间/([A-Z0-9 - ] + ).js文件$ /家庭/空间/ $ 1 [NC]

此外,请确保您已启用重写模块:

的LoadModule rewrite_module模块/ mod_rewrite.so

+0

这是不正确的。 OP希望通过请求“/ home/widget/something”来访问'/ widget/something.js'。所以使用*的规则是向后的。此外,您从不使用重写模式中的前导斜线。你的回答显示没有研究,并且似乎是“猜测” - 这对OP没有帮助。 –

+1

@MikeRockett。感谢您的反馈和我的道歉,如果我误解了这个问题,虽然我觉得OP可能会有更好的位置来打这个电话。我不知道如何/为什么我的答案显示没有“研究”?我的回答完全基于OP所列的要求,并没有做出任何假设。这就是为什么我用“IF”开始我的答案,而不是简单地宣布规则是倒退。你能解释一下为什么你“从不使用引导斜线”?谢谢。 –

+0

OP表示URI将被重写为“/ home/widget/ID”,这是明确的要求。关于该模式中的主导斜线,[本答案](/ a/27120/26881)应该为您澄清。 –