過去 24 時間、ここと Google 検索の両方で問題の解決策を探しましたが、何も見つかりませんでした。ただし、これがどこかに重複している場合は申し訳ありません。
PHP で記述された私のサイトの最後のバージョンでは、正しいページを取得するために次のようなリクエストを使用した 1 つのインデックス ページしかありませんでした。
?public=view/thispage
?page=account/loggedin
私は現在、サイトの新しいバージョンを php で書いています。たとえば、検索エンジンに適した URL / スラッグを作成しようとしています。
/page/view/thispage
/account/login
以下のコードの上部を使用して、仮想サブドメインが各クライアントで機能するように管理し、下部を使用してスラッグページを機能させることができました。
私が抱えている問題は、サイトにサインアップしたり、ユーザープロファイルを編集したりするためのフォームなどのフォームにあります。このサイトで、apache の書き換えでは $_POST 変数をスクリプトに渡す必要があることを読みました。リダイレクトしますが、私は書き換えを使用しており、フォームデータがスラッグ (/profile/edit など) に渡された場合は機能しませんが、たとえば virtualsubdomain.mydomain.com/test.php に渡された場合は機能します.
以下の htaccess ファイルを修正し、$_POST 変数をスラッグ スクリプト (以下のコードの index.php) に渡せるようにする方法を見つけて助けてもらえますか? 私が見逃しているのはおそらく小さなことだけです。
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.mydomainhere.org
RewriteCond %{HTTP_HOST} ^(.+).mydomainhere.org/^(.+)
RewriteRule ^([^/]*)$ http://mydomainhere.org [P,L]
ErrorDocument 404 /index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /index.php
</IfModule>
仮想のみのサブドメインに存在するphpファイルで投稿変数を読み取ることができる理由がわかりませんが、それらをスラッグ(/ profile/editprofileなど)に投稿すると読み取ることができません。私のサーバーではグローバル変数がオフになっていますが、次の例ではデフォルトの空白の変数が表示されるため、明らかに渡されていません。
$test = ''; //define the variable to please global vars off
$test = $_POST["namehere"];
echo $test;
どんな助けでも大歓迎です。おそらくわかるように、カスタムエラーファイルを含める以外の目的でhtaccessファイルを使用するのはかなり初めてです。