我有这个URL给我两个主要参数,文件夹和页面,以及其他可以变量存在或不存在的taom:
http://www.domain.com/adm/master.php?f=folder&p=page&otherparam1=somthing&otherparm2=somthing&otherparm3=somthing[...]
在我的master.php文件中,我包含一个基于这些参数的php文件:
$folder = $_GET['f'];
$page = $_GET['p'];
if(empty($page)) {
$page = 'dashboard';
}
$path = $folder.'/'.$page;
include_once 'pages/'.$path.'.php?otherparm1=somthing&otherparm2=somthing&otherparm3=somthing[...]';
otherparam 是URL的多个参数。
我想重新打开网址以显示如下内容:
www.domain.com/adm/folder/page/somthing/somthing/somthing[...]
我搜索了网络,但未能找到解决方案。
答案 0 :(得分:0)
如果你想用简单的.htacces来做,那么你可以使用以下.htacces代码:
RewriteEngine on
RewriteCond $1 !^(index\.php|css|favicon.ico|fonts|images|js|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
此代码的基本操作是覆盖您对域的请求(例如:localhost / mysite),而不是访问文件夹或文件,它将访问您的index.php
。除了index.php
,favoicon.ico,robots.txt文件和css,fonts,image和js文件夹或您在上面代码的第二行中定义的内容。
答案 1 :(得分:0)
在Root / .htaccess中尝试此操作
RewriteEngine On
RewriteRule ^adm/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ /adm/master.php?f=$1&p=$2&otherparam1=$3&otherparm2=$4&otherparm3=$5 [NC,L]
$ 1,$ 2,$ 3 ...包含在正则表达式捕获组中匹配的whateve值“([^ /] +)”。
这将重写
example.com/adm/folder/page/foo/bar/foobar
到
example.com/adm/master.php?f=folder&p=page&otherparam1=foo&otherparm2=bar&otherparm3=foobar
不更改浏览器地址栏中的网址。