使用重写规则时,PHP $ _GET值不起作用

时间:2014-05-28 10:13:01

标签: php

在配置文件中,用户$ _GET不能正常工作。

我正在使用URL重写

它的

RewriteBase /pline/
   RewriteEngine On
   RewriteRule ^([a-zA-Z0-9_-]+)$ profile.php?username=$1
   RewriteRule ^([a-zA-Z0-9_-]+)/$ profile.php?username=$1
  • 如果用户网址是(website.com/username?photos)无法正常工作
  • 如果用户网址是(website.com/profile.php?photos)正常工作

    if(isset($_GET['friends'])){
        echo 'Friends area!';
    }
    else{
        if(isset($_GET['photos'])){
            echo 'Photos area!';
        }
        else{
            echo 'Profile area!';
        }
    }
    

我该如何解决这个问题?

谢谢

2 个答案:

答案 0 :(得分:1)

根据您的重写规则,只有一个名为username

的变量

所以在你的php中,只有$_GET['username']才能获得值

那是默认变量是用户名。所以你应该使用这种链接:website.com/value_for_username

如果您想要更多变量,请使用website.com/value_for_username&var1=value1&var2=value2等。 并在必要时更新重写规则以匹配它。

答案 1 :(得分:0)

$ _ GET ['photos']在两种情况下都是definend!

此代码始终回显“照片区域”

请注意,在您举例说明您的用户名url没有PHP扩展名!

您可以尝试使用$ _GET参数中的值,尝试使用网站/username.php?section=photos

swich($_GET['section']){
   case 'product':
     echo "Product section";
   break;
  ....
}