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

时间:2013-03-21 09:47:40

标签: .htaccess

你好,我在这里遇到了问题。我正在寻找解决方案,但没有找到解决方案...... 所以我的htacess文件

RewriteEngine On


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]

它将我的网址添加到www.example.com/index.php?page=xxx到www.example.com/xxx 所以它有效,但问题是我可以从两个网址访问同一页面。所以它就像来自谷歌的不同网址的相同内容。如何从旧链接301重定向到新的?

1 个答案:

答案 0 :(得分:0)

RewriteEngine On行下方,添加以下内容:

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

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