0

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

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

我该如何使用htaccess?你有其他想法吗?

4

3 回答 3

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]
于 2013-02-20T13:32:55.290 回答
0

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

在 PHP 中你会这样做,这是最基本的形式

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

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

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

您可能还希望更多地阅读PHP GET 和 POST 变量。

于 2013-02-20T13:37:53.940 回答
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
于 2013-02-20T13:43:25.697 回答