0

次のルールを使用して、同じサーバー上の開発ドメインの URL にクエリ文字列を渡していますが、機能していました。

DOMAIN1 URL の作業コード: http://DOMAIN1.com/billing/renew.php?invoice_no=XXX

RewriteEngine On

RewriteRule ^billing/renew/invoice/([^/]*)$ /billing/renew.php?invoice_no=$1 [L]

ただし、サブディレクトリ「ベータ」のライブドメインにデプロイすると、機能しません。両方のドメインは同じサーバー上にあり、ホスト構成は同じです。htaccess が機能していることを確認するためにオーバーライドが許可されています。唯一の違いは、ライブ ドメインが https プロトコルで動作し、書き換えルールがホスト構成で定義され、https 以外のすべてのトラフィックを https にリダイレクトすることです。

ライブサーバーの beta ディレクトリに httacess ファイルを配置しました。

DOMAIN2 URL の非動作コード: " https://DOMAIN2.com/beta/billing/renew.php?invoice_no=XXX "

RewriteEngine On
RewriteBase /beta/

RewriteRule ^billing/renew/invoice/([^/]*)$ /billing/renew.php?invoice_no=$1 [L]

また試した

RewriteEngine On

RewriteRule ^beta/billing/renew/invoice/([^/]*)$ /beta/billing/renew.php?invoice_no=$1 [L]

誰かが私が間違っていることを教えてもらえますか?

4

1 に答える 1

0

ベースを適用できるように、ルールのターゲットを相対 URI にする必要があります。それか、ベースを絶対 URI に追加します。

RewriteEngine On
RewriteBase /beta/

RewriteRule ^billing/renew/invoice/([^/]*)$ billing/renew.php?invoice_no=$1 [L]
# No "/" here ------------------------------^

または

RewriteEngine On

RewriteRule ^billing/renew/invoice/([^/]*)$ /beta/billing/renew.php?invoice_no=$1 [L]
# Add the "/beta" here ---------------------^
于 2013-06-20T16:40:58.673 に答える