Перенаправить весь трафик, кроме определенного, через .htaccess ..? - PullRequest
1 голос
/ 27 июня 2019

У меня есть файл на example.com/DesktopModules/SubscriptionSignup/Tools/IPNHandler.aspx, который нужно переписать, чтобы он действительно выполнял example.com/paypal-ipn-handler.php.

Однако весь остальной трафик должен быть перенаправлен на another-example.com.

* 1007.* Я использую это в своем файле .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 непосредственно я получаю вывод, который я ожидаю.

Так что, похоже, мне нужно больше помощи, чем я думал, пожалуйста, и спасибо!

1 Ответ

1 голос
/ 28 июня 2019

Вы можете использовать эти правила на своем сайте в сауне .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.

Обязательно используйте новый браузер для тестирования или тестирования после полной очистки кэша браузера.

...