动态到静态网址并删除动态

时间:2013-08-16 07:01:29

标签: .htaccess dynamic static rewrite

我想将动态网址改为静态网址, 但重写后,动态网址仍在响应/可用。

我做了什么=>

我找到了这个搜索引擎优化工具: http://www.webconfs.com/url-rewriting-tool.php

我输入了这个: ... / filmdetails.html?VAR = ich_einfach_unverbesserlich_ii

然后我把我的.htaccess放进去了:

RewriteEngine On
Options +FollowSymLinks
RewriteRule ^filmdetails/(.*)/$ filmdetails.html?var=$1

工作,但现在我遇到了一个问题:这个网址仍然可用,不应该是:... / filmdetails.html?var = ich_einfach_unverbesserlich_ii

如何摆脱动态网址?

2 个答案:

答案 0 :(得分:0)

尝试:

Options +FollowSymLinks
RewriteEngine On
#set this to path to your filmdetails.html file (from the document root)
RewriteBase /
#checking if redirect already happened
RewriteCond %{ENV:REDIRECT_PASSED} !^$
RewriteRule $ - [L]
#Your rewrite rule
RewriteRule ^filmdetails/(.*)/$ filmdetails.html?var=$1 [L,E=PASSED:1]
#redirecting from filmdetails.html with query string ?var=something
RewriteCond %{QUERY_STRING} ^var=(.+)$ [NC]
RewriteRule ^filmdetails.html$ filmdetails/%1/? [R]

filmdetails.html?var=something将被重定向到filmdetails/something

答案 1 :(得分:0)

您的规则只会将看起来很好的URL重写为带有查询字符串的URL。规则仅适用于“模式” - > “目标”的方式,映射不会神奇地以其他方式工作。您必须创建单独的规则才能重定向浏览器:

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