重写.htaccess中的url无法在php中工作

时间:2014-07-15 10:32:25

标签: php apache .htaccess mod-rewrite url-rewriting

我正在使用php和apache服务器,我想将sites/all/themes/chap2014/fpd/gift.php重写为fdp/giftsites/all/themes/chap2014/fpd/another.php fdp/another 我想要做到这一点

sites/all/themes/chap2014/fpd/*.php重写为fpd/*

重写模式已启用,我在.htacess文件中尝试下面的代码。

RewriteEngine on
RewriteRule ^fpd/?$  sites/all/themes/chap2014/fpd/$1.php

但没有任何反应,实现这一目标的正确方法是什么?

感谢任何帮助,

2 个答案:

答案 0 :(得分:2)

您需要首先在URI模式的LHS上对URI的一部分进行分组和捕获,然后才能在RHS上使用$1$2等。

RewriteEngine on

RewriteRule ^fpd/([^/]+)/?$ /sites/all/themes/chap2014/fpd/$1.php [L,NC]

PS:在您的问题中,您使用了fpdfdp。不确定哪一个是对的。

答案 1 :(得分:2)

试试这个:

RewriteRule ^fpd/(.+)$ sites/all/themes/chap2014/fpd/$1.php

您可能希望排除/符号,如果是,请将.+替换为[^/]+

您必须将要放置的部分包含在()的变量中,并且每个封闭的部分将放入$ 1,$ 2,$ 3等等。

此外,这是一个测试重写规则的好工具:

http://martinmelin.se/rewrite-rule-tester/