1

我想重写 URL,为此我有以下代码。

    Options +FollowSymLinks
    RewriteEngine On
    RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?uname=$1
    RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?uname=$1

现在,当我写像www.mywebsite.com/username这样的网址时,它可以正常工作并且没有给出任何错误。

现在,即使我在 hit go 中写www.mywebsite.com/index.php?uname=username ,我如何才能获得这个 URL。

当我在 URL 中写入 www.mywebsite.com/index.php?uname=username 时,想将www.mywebsite.com/index.php?uname=username更改为www.mywebsite.com/username 。

作为 WWW 前缀的重写工作,即使用户写 www.mywebsite.com/index.php?uname=username ,我也希望以相同的方式将我的 URL 更改为www.mywebsite.com/username

4

1 回答 1

0

以下应该有效:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)/?$ index.php?uname=$1

它将检查文件或目录是否不存在,如果不存在,它将假定它是用户名并重写 URL。

如果您想从 to 重定向index.php?uname=username/username则可以将其添加到您的顶部index.php

if (strpos($_SERVER['REQUEST_URI'], "uname") !== false)
{
    header("Location: /" . $_GET['uname']);
}
于 2012-04-27T10:19:07.390 回答