apache中的多个url重定向:mod_rewrite

时间:2017-08-14 16:38:27

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

我是Apache的新手,希望将现有的url(1)重定向到新的url(2),然后重定向到最终的url(3)。从url(1)到url(2)的重定向是已定义的现有重定向规则,我们不能通过它。由于这个原因,我们不能直接从url(1)跳转到url(3)。以下是exsitng代码:

例如:

    <IfModule mod_rewrite.c>
      RewriteEngine on
      RewriteRule ^/portal-web-payment/(.*)$ /portal-web/$1 [R]
      RewriteRule ^/portal-web/abc/portal/payment/web/mbbQuickRecharge/(.*)$ - [L]
 </IfModule>

我希望将下面的规则插入到现有的规则中,但这不起作用。

RewriteRule ^/(.*)(portal-web/abc/portal/payment/web/mbbQuickRecharge/PrepaidQuickRechargeController.jpf)(.*)$ http://yahoo.com/servlet/du/en/mobilebroadbandrecharge.html [L,R=302]

以下是我们编写的最终重定向网址,该网址无效。

<IfModule mod_rewrite.c>
      RewriteEngine on
      RewriteRule ^/portal-web-payment/(.*)$ /portal-web/$1 [R]
      RewriteRule ^/portal-web/abc/portal/payment/web/mbbQuickRecharge/(.*)$ - [L]
      RewriteRule ^/(.*)(portal-web/abc/portal/payment/web/mbbQuickRecharge/PrepaidQuickRechargeController.jpf)(.*)$ http://yahoo.com/servlet/du/en/mobilebroadbandrecharge.html [L,R=302]
</IfModule>

如果假设规则不起作用是由于已经存在apache标志[L],由于项目限制,我们不能在此之前放置我们的URL。

请建议一种方式。

提前致谢。

更新1: 嗨,它在.conf文件中。 servername是我们的本地环境:in.test.it:90

<IfModule mod_rewrite.c>
        ServerName in.test.it:90
        RewriteEngine On
      RewriteRule ^/portal-web-payment/(.*)$ /portal-web/$1 [R]
      RewriteRule ^/portal-web/abc/portal/payment/web/mbbQuickRecharge/(.*)$ - [L]
      RewriteRule ^/(.*)(portal-web/abc/portal/payment/web/mbbQuickRecharge/PrepaidQuickRechargeController.jpf)(.*)$ http://yahoo.com/servlet/du/en/mobilebroadbandrecharge.html [L,R=302]
</IfModule>

0 个答案:

没有答案