通过.htaccess 重定向除了一些特定流量之外的所有流量..?
Redirect all but some specific traffic via .htaccess..?
我在 example.com/DesktopModules/SubscriptionSignup/Tools/IPNHandler.aspx
有一个文件需要重写,以便它实际上 运行s 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 时,我得到了我期望的输出。
所以看来我需要的帮助比我想象的要多,谢谢!
您可以在您的网站 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
之外的所有内容。
请务必使用新的浏览器进行测试或彻底清除浏览器缓存后进行测试。
我在 example.com/DesktopModules/SubscriptionSignup/Tools/IPNHandler.aspx
有一个文件需要重写,以便它实际上 运行s 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 时,我得到了我期望的输出。
所以看来我需要的帮助比我想象的要多,谢谢!
您可以在您的网站 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
之外的所有内容。
请务必使用新的浏览器进行测试或彻底清除浏览器缓存后进行测试。