使用mod_rewrite清理URL

时间:2013-12-10 11:25:33

标签: apache .htaccess mod-rewrite

我的网站用户个人资料页面是

http://website.com/profile?name=test

我正在使用get方法获取变量名称 我正试图让上面的网址像是一样清理,

http://website.com/test

我的.htaccess内容

RewriteEngine On
RewriteBase /creatorsink/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L]
RewriteRule ^([a-z]+)/?$ profile.php?name=$1 [L,QSA]

有没有办法用一个获取名字的选项呢?

1 个答案:

答案 0 :(得分:4)

您可以使用mod_rewrite。例如,您的.htaccess文件应如下所示:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ profile.php?name=$1 [L,QSA]

以下是对上述内容的简要说明:

  • RewriteEngine On打开引擎(正如预期的那样)。

  • 如果请求文件名存在,则
  • RewriteCond %{REQUEST_FILENAME} !-f不会重写任何内容,并且是文件。

  • 如果请求文件名存在,则
  • RewriteCond %{REQUEST_FILENAME} !-d不会重写任何内容,并且是目录。

  • RewriteRule ^([^/]+)/?$ profile.php?name=$1 [L,QSA]这是实际的重写规则。它需要在域名之后的任何内容(除正斜杠之外的任何内容),并将其重写为profile.php,并将其作为name参数传递。