我有以下网址:
http://www.efilmsworld.com/film.php?url=blended-film-2014
我在.htaccess
中使用以下内容:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)\.html$ /film.php?url=$1 [L,QSA]
将我的网址重写为:
http://www.efilmsworld.com/blended-film-2014.html
直到这一点,没关系。但问题是我有两个工作URL,它复制了不好的内容:
efilmsworld.com/film.php?url=blended-film-2014
efilmsworld.com/blended-film-2014.html
所以我需要删除查询字符串url,例如:
efilmsworld.com/film.php?url=blended-film-2014
答案 0 :(得分:0)
添加
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /film\.php\?url=(.*)\ HTTP
RewriteRule ^ /%2.html? [R=301,L]
你的htaccess会解决这个问题。
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /film\.php\?url=(.*)\ HTTP
RewriteRule ^ /%2.html? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)\.html$ /film.php?url=$1 [L,QSA]
将会发生什么
efilmsworld.com/film.php?url=blended-film-2014
,则网址将被重写为efilmsworld.com/blended-film-2014.html
,然后默默重写(即地址栏中的网址不会更改)返回efilmsworld.com/film.php?url=blended-film-2014
,以便内容仍然显示。efilmsworld.com/blended-film-2014.html
,则会将其静默重写为efilmsworld.com/film.php?url=blended-film-2014
(您已经这样做了。[R=301]
标志告诉浏览器(和搜索引擎)网址已更改,现在可以在sometitle.html
找到。该页面现在只显示一次,因此不再有重复的内容。编辑:根据评论请求。
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /video\.php\?url=(.*)\ HTTP
RewriteRule ^ /video/%2.html? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^video/([^/]*)\.html$ /video.php?url=$1 [L,QSA]