http://www.mydomain.com/rsvp.php/q/something
にリダイレクトされるように、結婚式の Web サイトのリダイレクトを設定してhttp://www.mydomain.com/rsvp.php?q=something
いますが、サーバー側でのみです (つまり、クライアントrsvp.php/q/something
のアドレス バーにはまだ表示されます)。
現在、このサイトの apache 構成には次のものがあります。
<VirtualHost *>
ServerAdmin my@email.com
ServerName www.mydomain.com
DocumentRoot /var/www/www.mydomain.com
Options -Indexes +FollowSymLinks
RewriteEngine on
RewriteRule ^/rsvp.php/q/(.*) /rsvp.php?q=$1
</VirtualHost>
ここで、PHP ファイルの先頭に (ユーザーが q クエリ変数に何も持っていない場合に) index.html にリダイレクトするメタリダイレクトもあります。
<?php
$userHash = $_GET['q'];
?>
<!doctype html>
<html>
<head>
<title>Wedding - RSVP Page</title>
<?php
// If we don't have a user hash, then let's redirect to the main
// page.
if (!$userHash) {
echo '<meta http-equiv="refresh" content="0; url=http://www.mydomain.com/">';
}
?>
繰り返しますが、これは 1 つの例外を除いて問題なく動作するようです。ユーザーが RSVP データを入力するためのフォームを使用しています。送信時に、スクリプトを呼び出しますsubmit-form.php
。アドレスhttp://www.mydomain.com/getID.phpにアクセスすると、index.html にリダイレクトされますが、これは私が望んでいるものではありません。
を削除するとRewriteRule
、期待どおりに機能しますが、適切な URL を取得できないことを除きます (q=something
の代わりに使用する必要がありますq/something
)。私は mod_rewrite があまり得意ではないので、誰かが私が間違っていることを教えてくれるのではないかと思っています。
ありがとう!