首先:如果你对这个问题有更好的称号,请告诉我。 您好,我有一个使用get变量加载内容的站点。 让我向你解释一下。
我的索引php文件:
<?php
#check if get parameter page exists
#check if file exists
require $_GET['page] . '.php'; //if it exists require its content
?>
通过这种方式,用户可以访问我的网站并写下以下网址:
http://localhost/loremipsum?page=home
http://localhost/loremipsum?page=help
但为了获得更清晰的网址,我编辑了我的.htaccess文件,以获取这些网址:
http://localhost/loremipsum/home
http://localhost/loremipsum/help
.htaccess: RewriteEngine On RewriteBase / RewriteCond%{REQUEST_FILENAME}! - f RewriteCond%{REQUEST_FILENAME}!-d RewriteRule ^(。*)/ loremipsum /?pg = $ 1 [L]
但我得到了一个我需要其他参数的点,对于下一个网址,我希望将userpreferences
作为page
参数,将something
作为fav
作为http://localhost/loremipsum/userpreferences&fav=something
参数
这样的网址会起作用:
http://localhost/loremipsum/userpreferences/something
但目标是获得这样的网址:
RewriteRule ^(.*)/userpreferences/(a-zA-Z0-9)+ /loremipsum/?pg=$1&fav=$2 [L]
问题是我尝试过的任何东西都没有用,这是我认为它应该有效但却没有:
RewriteRule ^userpreferences/(a-zA-Z0-9)+ /loremipsum/?pg=userpreferences&fav=$1 [L]
更新
我知道只有当page参数等于userpreferences并且我正在考虑做
时才应用此规则$a = $db->get_results("SELECT * FROM database WHERE id ");
$i=1;
while ($b = mysqli_fetch_array($a)) {
$oauth_token[$i] = $b["oauth_token"];
$oauth_secret[$i] = $b["oauth_secret"];
$i++; }
但它不起作用,似乎用户偏好不是字符串而且我收到服务器错误。
答案 0 :(得分:1)
您可以像这样制作重写规则:
RewriteRule ^(.*)$ index.php?parameter=$1 [NC]
然后你得到:
index.php?parameter=param/value/param/value
从浏览器中获得:
http://localhost/parameter/param/value/param/value
在PHP文件中,您可以访问您的参数:
<?php
$parameter = explode( "/", $_GET['parameter'] );
for($i = 0; $i < count($parameter); $i+=2) {
echo $parameter[$i] ." has value: ". $parameter[$i+1] ."<br />";
}
?>