使用htaccess在URL中获取变量

时间:2013-02-20 13:29:55

标签: php .htaccess

我写http://www.mysite.com/username时需要 用户名作为参数发送到index.php

示例:http://www.mysite.com/index.php?user=username

我怎么能用htaccess?你有其他想法吗?

3 个答案:

答案 0 :(得分:1)

请在你的htaccess中写下规则:

RewriteEngine On
RewriteRule ^([a-zA-Z0-9-/]+)$ index.php?uniqname=$1 [QSA]
RewriteRule ^([a-zA-Z0-9-/]+)/$ index.php?uniqname=$1 [QSA]

要添加文件夹,请使用此

RewriteEngine On
RewriteRule ^avatars/([a-zA-Z0-9-/]+)$ index.php?uniqname=$1 [QSA]
RewriteRule ^avatars/([a-zA-Z0-9-/]+)/$ index.php?uniqname=$1 [QSA]

答案 1 :(得分:0)

您希望能够在所请求页面的PHP中读取用户名变量吗?

在PHP中,您将以最基本的形式

执行此操作
    <?php echo $_GET['username']; ?> // That will print the variable value on the page

重要。如果您使用它来获取或编辑数据库中的数据,则需要先清理或sanitize that variable以防止SQL注入攻击。一个粗略的例子就是这样

    <?php 
    $username = mysql_real_escape_string($_GET['username'];
    echo $username;
    ?>

您可能还希望阅读更多PHP GET and POST variables.

答案 2 :(得分:0)

您可以使用以下RewriteRules:

//Only one parameter that defines username
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?username=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?username=$1

//If you need second parameter or a number only parameter
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)$ index.php?username=$1&paramnumber=$2
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/$ index.php?username=$1&paramstring=$2