1

2 つの iframe を持つ Web サイトを作成しています。最初の iframe には曲が再生され、2 つ目の iframe には Web サイトがあります。ここに私のindex.phpファイルがあります:

<?php
$base_url = 'http://www.mywebsite.com/site/';
?>
<iframe src="<?php echo $base_url; ?>music.php" frameborder="0" width="960px" height="1px"></iframe>

<?php
$page = $_GET['params'];

switch ($page) {
    case 'home':
        $page = 'home.php';
        break;
    case 'contact':
        $page = 'contact.php';
        break;
}
?>

<iframe src="<?php echo $base_url; ?><?php echo $page ?>" frameborder="0" width="100%" height="100%"></iframe>

そして、これは私の .htaccess です

RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ site/index.php?params=$1

正常に動作していますが、必要なのは次のとおりです。

ユーザーがhttp://www.mywebsite.com/contact にアクセスしようとすると、switch ステートメント用にこの「連絡先」を取得し、URL をhttp://www.mywebsite.comにクリーンアップする必要があります。

シミュレーション:

  1. リクエストhttp://www.mywebsite.com/contact
  2. パラメータ「連絡先」を取得
  3. contact.php ファイルをロードする
  4. URL をhttp://www.mywebsite.comにクリーンアップします。

前もって感謝します!

4

3 に答える 3

2

最初の 3 つのステップを実行できます

RewriteRule ^contact$ /contact.php?params=contact [L,QSA]

すでに持っているルールの前にそれを追加すると。http://www.mywebsite.com/しかし、URL をに「きれいにする」ことはできませんsite/index.php?params=home

「連絡先」ページの場合、次のようになります。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILEMAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ /$1.php?params=$1 [L,QSA]

Multiviewsがオフになっていることも確認する必要があります。

Options Multiviews
于 2013-10-16T13:47:15.320 に答える
1

次のような一般的なルールが 1 つだけ必要です。

# To internally forward /anything to /anything.php?params=anything
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+?)/?$ /$1.php?params=$1 [L,QSA]
于 2013-10-16T13:52:37.627 に答える