1

你好,这是我想要做的:如果有人去 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]
4

3 回答 3

2

通过启用 mod_rewrite 和 .htaccess httpd.conf,然后将此代码放在您.htaccessDOCUMENT_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]
于 2013-07-16T07:42:57.503 回答
1

如果 url 是指定的,你可以做类似的事情

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

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

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

于 2013-07-16T08:25:13.253 回答
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
于 2013-07-16T09:23:29.730 回答