GET不适用于.htaccess清理网址

时间:2014-03-05 02:00:57

标签: php apache .htaccess mod-rewrite

我正在创建个人资料系统,使用localhost/profiles?user=ryr11工作,我尝试使用

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

RewriteRule ^profiles/(.+)$ profiles.php?user=$1 [L,QSA]

以便我可以使用localhost/profiles/ryr11,但是当我这样做时,我不再收到404错误,但使用$_GET['user']不再有效。

3 个答案:

答案 0 :(得分:0)

试试这个:

RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^profiles/([a-zA-Z0-9_.-]+)/?$ profiles.php?user=$1 [L,NC,QSA]

答案 1 :(得分:0)

保持这样的规则:

Options  -MultiViews
RewriteEngine On
RewriteBase /

RewriteRule ^profiles/(.+)$ profiles.php?user=$1 [L,QSA,NC]

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

答案 2 :(得分:0)

您需要再次解码该网址才能从中删除。

使用此

$user = $_GET['user'];
$postTitle = str_replace("-", " ", $user);

这应该再次起作用。