.htaccess 301将丑陋的URL重定向到干净的URL

.htaccess 301将丑陋的URL重定向到干净的URL,.htaccess,.htaccess,你好,我这里有个问题。我正在寻找解决方案,但在这个问题上找不到解决方案。。。 所以我的htacess文件 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)$ index.php?page=$1 [QSA] 它将我的url更改为prety url,如www.example.com/index.php?page=xxx到www.ex

你好,我这里有个问题。我正在寻找解决方案,但在这个问题上找不到解决方案。。。 所以我的htacess文件

RewriteEngine On


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
它将我的url更改为prety url,如www.example.com/index.php?page=xxx到www.example.com/xxx
这是可行的,但问题是我无法从两个URL访问同一页面。因此,对于谷歌来说,这就像是来自不同URL的相同内容。如何使301从旧链接重定向到新链接?

在行的
重写引擎下方,添加以下内容:

RewriteCond %{THE_REQUEST} ^(GET|HEAD|POST)\ /index\.php\?page=([^&\ ]+)&?([^\ ]*)
RewriteRule ^ /%2?%3 [L,R=301]

这将对照实际请求(而不是请求URI)检查
/index.php
,并提取页面参数的值,然后将浏览器重定向到参数值的URI(将任何剩余的查询字符串附加到该参数)。这会将浏览器的URL地址栏中的内容更改为不带
/index.php

的URL。您好,这是真的,thanx。但是如果页面指向子类别,例如www.example.com/yyy/xxx。yu代码仅重定向到www.example.com/xxx。是否可以显示父类别?因为现在来自www.example.com/xxx和www.example.com/yyyy的页面相同/xxx@user2132032您必须将“yyyy”位添加到条件和重写规则的目标中。因此,在
index\.php
%2?%3
前面添加任何“yyyy”,例如url,我有点困惑:当我单击时,我被重定向到许多类别,所以我确实让它们都写入htaccess文件?