.htaccess 删除 index.php 并从 URL 中隐藏参数键

.htaccess remove index.php and hide parameter key from URLs

我有以下URL

www.example.com/index.php?tag= xxx

我想使用 .htaccess 使其像下面这样

www.example.com/xxx

我用这段代码完成了:

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

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule ^(.+?)/?$ /index.php?tag= [L,QSA]

所以如果我输入这个 URL:

www.example.com/index.php?tag=1000

重定向到:

www.example.com/?tag=1000

如果:www.example.com/1000有效!

所以我复制了URL,这对seo不好。

如何将 www.example.com/index.php?tag=1000 重定向到 www.example.com/1000

How can redirect www.example.com/index.php?tag=1000 to www.example.com/1000

您可以在 RewriteBase 行下方插入此规则:

RewriteCond %{THE_REQUEST} /(?:index\.php)?\?tag=([^\s&]+) [NC]
RewriteRule ^ /%1? [R=302,L,NE]

将此代码用于 .htaccess 文件

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+?)/?$ /index.php?key= [L,QSA]

你index.php代码将是

<?php 
echo $_REQUEST['key'];  
?>

然后打电话 http://sitename.com/1000

输出将是:1000