您好我正在尝试做的事情: 如果有人访问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]
答案 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