如何使用参数将短URL重定向到php文件

时间:2013-07-16 07:30:29

标签: php url-rewriting rewrite

您好我正在尝试做的事情: 如果有人访问site.com/myusername,他们会被发送到site.com/index.php?a=profile&u=myusername

如果你知道htaccess重写引擎,那么

应该很简单。对于类似的东西,还有任何好的初学者教程吗?

这是我的礼物.htaccess:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{request_filename} -f [OR]
RewriteCond %{request_filename} -d
RewriteRule ^ - [L]

RewriteRule ^(([^/]*)+)(/([^/]{0,32})(/.+)?)?$ /index.php?a=$1&q=$3 [L,QSA]

RewriteRule ^(.+?)/?$ /index.php?a=profile&u=$1 [L,QSA]

3 个答案:

答案 0 :(得分:2)

通过httpd.conf启用mod_rewrite和.htaccess,然后将此代码放在.htaccess目录下的DOCUMENT_ROOT中:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

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

答案 1 :(得分:1)

如果网址是指定的,您可以执行类似

的操作
if (!isset($_REQUEST['u'])) {

$x = $_SERVER['REQUEST_URI'];
$y = str_replace('?', '', $x);
$z = str_replace('/', '', $y);
header("Location: ?a=profile&u=$z"); }

虽然不是一个很好的解决方案,但这是我能想到的..如果你想在php中做到这一点..

答案 2 :(得分:0)

我知道你已经得到了答案。但我只是在一小时之前就知道了。但我的系统问题只有我以后发布它。 这也是一种方法。

Options +FollowSymlinks
RewriteEngine On
RewriteBase /  
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)$ /index.php?a=profile&q=$1