通过.htaccess.重定向除某些特定流量以外的所有流量。。?

通过.htaccess.重定向除某些特定流量以外的所有流量。。?,.htaccess,cpanel,.htaccess,Cpanel,我在example.com/DesktopModules/SubscriptionSignup/Tools/IPNHandler.aspx上有一个文件需要重写,以便它实际运行example.com/paypal ipn handler.php 不过,所有其他流量都应该重定向到另一个example.com 我正在.htaccess文件中使用此选项: # Rewrite IPNHandler.aspx to paypal-ipn-handler.php <IfModule mod_rewrit

我在
example.com/DesktopModules/SubscriptionSignup/Tools/IPNHandler.aspx
上有一个文件需要重写,以便它实际运行
example.com/paypal ipn handler.php

不过,所有其他流量都应该重定向到
另一个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]
#将IPNHandler.aspx重写为paypal-ipn-handler.php
RewriteCond%{REQUEST_URI}^/Tools/IPNHandler.aspx[NC]
重写规则^.*$https://www.example.com/paypal-ipn-handler.php [P]
#将所有其他通信重定向到新域。
重写规则^https://www.another-example.com%{REQUEST_URI}[L,R=301]
但是,它重定向了所有内容,包括应该留在这个域中的URL,但会被重新写入PHP文件

例如,有了上述内容,我希望
example.com/DesktopModules/SubscriptionSignup/Tools/IPNHandler.aspx
的通信量将保持在
example.com
,而运行PHP脚本。然而,这并没有发生。它被重定向到
另一个example.com/…/IPNHandler.aspx
,当然给了我一个404

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

编辑

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


看来我需要比我想象的更多的帮助,请,谢谢

您可以在站点中使用这些规则。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
之外的所有内容

确保使用新浏览器进行测试或在完全清除浏览器缓存后进行测试