Php 获取URL参数并使用htaccess清除URL
我正在创建一个有2个iframe的网站,第一个iframe播放一首歌,第二个iframe拥有该网站。这是我的index.php文件:Php 获取URL参数并使用htaccess清除URL,php,.htaccess,redirect,iframe,Php,.htaccess,Redirect,Iframe,我正在创建一个有2个iframe的网站,第一个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> &l
<?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>
工作正常,但我需要的是:
当用户尝试访问
我需要为我的switch语句获取此“contact”,并清除指向的url
模拟:
提前谢谢 您可以使用
RewriteRule ^contact$ /contact.php?params=contact [L,QSA]
如果您将其添加到已有规则之前。但是你不能“清理”到http://www.mywebsite.com/
,从那时起,它将无法与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
您只需要一个这样的通用规则:
# 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]
你说的“清除URL”是什么意思
因为如果您想传输contact参数,可以使用附加查询字符串(querystringappend)的QSA标志,但如果您只想清除URL,可以在contact.php中进行一些处理,然后使用php头函数重定向到主页面
他在我键入答案时回答了我的问题,但我正要给你Jon Lin的代码你为什么需要第4步?哈哈Sry,删除了这一步。没问题,请参阅下面的一般答案,这应该可以解决你的问题。除了联系人之外还有其他URL,我删除了它以缩短代码。顺便说一句,我从htaccess中删除了4个步骤!Sry为此我这样做是因为今天当请求页面“”时,它工作正常,但是当用户单击“主页”链接时,网站被重定向到主页,但URL保持不变(因为iframe)
# 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]