我创建了一个有2个iframe的网站,第一个iframe播放了一首歌,第二个有网站。这是我的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语句获取此“联系人”并将网址清除为http://www.mywebsite.com
模拟:
提前致谢!
答案 0 :(得分:2)
您可以使用
执行前3个步骤RewriteRule ^contact$ /contact.php?params=contact [L,QSA]
如果您在已有规则之前添加它。但你不能清洁&#34; http://www.mywebsite.com/
的网址,从那时起它将与site/index.php?params=home
无法区分。
对于任何&#34;联系人&#34;页面,然后:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILEMAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ /$1.php?params=$1 [L,QSA]
您还希望确保Multiviews
已关闭:
Options Multiviews
答案 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]
答案 2 :(得分:0)
“清除http://www.mywebsite.com的网址”是什么意思?
因为如果要传输联系参数,可以使用附加查询字符串的QSA标志(查询字符串追加),但如果您只想清理URL,可以在contact.php中进行一些处理,然后重定向到main带有PHP标头功能的页面。
他在我输入答案时回答,但我准备给你Jon Lin的代码