【发布时间】:2011-08-07 06:02:04
【问题描述】:
我有一个类似http://domain.com/index.php?user=test 的网址
当用户登录时,我想显示一个类似http://domain.com/user 的 URL(用户 将是动态的)。
如何使用 PHP 重写 URL 来实现这一点?
【问题讨论】:
标签: php url-rewriting
我有一个类似http://domain.com/index.php?user=test 的网址
当用户登录时,我想显示一个类似http://domain.com/user 的 URL(用户 将是动态的)。
如何使用 PHP 重写 URL 来实现这一点?
【问题讨论】:
标签: php url-rewriting
您需要在.htaccess 中查看mod_rewrite
在 .htaccess 中添加重写规则很简单。首先,通过将此行添加到您的 .htaccess 来激活 mod_rewrite:
RewriteEngine on
RewriteBase /
然后添加您的规则以重定向您的页面:
RewriteRule ^([^/]+)$ /yourpage\.php?user=$1
【讨论】:
你应该使用基于 .htaccess 的东西。以 WordPress 为例:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
这表示抓取任何不存在的页面(例如您的“用户”),然后重定向到主 index.php 文件。
那个主要的index.php 然后可以抓取“用户”,您可以使用它从您的数据库中抓取数据并显示您想要的任何内容。
编辑——类似于 AlienWebguy 的回答
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^like/(.+) /like.php?user=$1 [L]
</IfModule>
【讨论】:
REQUEST 只访问$_POST、$_GET 和$_COOKIE,尝试寻找$_SERVER['REQUEST_URI']