我想将动态网址改为静态网址, 但重写后,动态网址仍在响应/可用。
我做了什么=>
我找到了这个搜索引擎优化工具: 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
如何摆脱动态网址?
答案 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]