2012-04-27 62 views
1

我想重写URL并为此我有以下代码。url rewrite htaccess和php

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它工作正常,并没有给予任何错误。

现在我怎么能得到这个URL,即使当我写www.mywebsite.com/index.php?uname=username在命中。

我想改变www.mywebsite.com/index.php?uname=usernamewww.mywebsite.com/username当我写www.mywebsite.com/index.php?uname=username在URL中。

至于WWW的前缀我想同样的方式我的网址更改为www.mywebsite.com/username即使用户写www.mywebsite.com/index.php?uname=username重写工作。

回答

0

下面应该工作:

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

它会检查文件或目录不存在,如果没有它会以为这是一个用户名和重写URL。重播

if (strpos($_SERVER['REQUEST_URI'], "uname") !== false) 
{ 
    header("Location: /" . $_GET['uname']); 
} 
+0

感谢:

如果你想从index.php?uname=username/username重定向,那么你可以添加到您的index.php的顶部。当我访问www.mywebsite.com/username URL但它不是从www.mywebsite.com/index.php?uname=username转换为www.mywebsite.com/username – Satish 2012-04-27 10:36:26

+0

@萨蒂什请看看我的编辑。 – Devator 2012-04-27 11:21:26