【问题标题】:Redirect all but some specific traffic via .htaccess..?通过.htaccess 重定向除某些特定流量之外的所有流量..?
【发布时间】:2019-11-09 21:31:30
【问题描述】:

我在example.com/DesktopModules/SubscriptionSignup/Tools/IPNHandler.aspx 有一个文件,需要重写它才能真正运行example.com/paypal-ipn-handler.php

不过,所有其他流量都应重定向到another-example.com

我在我的 .htaccess 文件中使用它:

# Rewrite IPNHandler.aspx to paypal-ipn-handler.php
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_URI} ^/Tools/IPNHandler.aspx [NC]
RewriteRule ^.*$ https://www.example.com/paypal-ipn-handler.php [P]
</IfModule>

#Redirect all other traffic to new domain.
RewriteRule ^ https://www.another-example.com%{REQUEST_URI} [L,R=301]

但是,这会重定向所有内容,包括应该保留在该域中的 URL,但会被重新写入 PHP 文件。

例如,在上述情况下,我预计到example.com/DesktopModules/SubscriptionSignup/Tools/IPNHandler.aspx 的流量将保持在example.com,但改为运行 PHP 脚本。但是,这并没有发生。它被重定向到 another-example.com/..../IPNHandler.aspx 并给我一个 404,当然。

任何关于我如何调整它以便我的重写工作并保持在原始域上的信息,但所有其他流量都会被重定向,我们将不胜感激。谢谢!

编辑

实际上,我注释掉了重定向以查看我的重写是否正常工作,它实际上给了我一个 404,但是当我直接点击 paypal-ipn-handler.php 时,我得到了我期望的输出。

看来我需要比我想象的更多的帮助,拜托,谢谢!

【问题讨论】:

    标签: .htaccess cpanel


    【解决方案1】:

    您可以在您的网站 soot .htaccess 中使用这些规则:

    RewriteEngine On
    
    RewriteRule Tools/IPNHandler\.aspx$ /paypal-ipn-handler.php [L,NC]
    
    #Redirect all other traffic to new domain.
    RewriteRule !^paypal-ipn-handler\.php$ https://www.another-example.com%{REQUEST_URI} [L,NC,NE,R=301]
    

    这里不需要使用P 标志,因为您只需要内部重写。

    条件!^paypal-ipn-handler\.php$ 将重定向除/paypal-ipn-handler.php 之外的所有内容。

    请务必使用新的浏览器进行测试或完全清除浏览器缓存后进行测试。

    【讨论】:

      猜你喜欢
      • 2015-03-13
      • 1970-01-01
      • 2016-06-06
      • 1970-01-01
      • 2014-08-23
      • 1970-01-01
      • 2012-11-04
      • 2018-02-03
      • 2014-04-23
      相关资源
      最近更新 更多