如何将301重定向动态网址转换为静态网址?
在这种情况下
www.example.com/book.php?book=title
到
www.example.com/book/title
申请动态网址时,它应转换为静态网址。 应转换动态URL,而静态URL应显示在地址栏中。
我收到了这段代码:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^user/([^-]+)/?$ /user.php?id=$1 [NC,L]
有人可以给我一个动态网址静态网址的301重定向。 提前致谢。
答案 0 :(得分:0)
最简单的方法是在mod_rewrite
文件中使用Apache的.htaccess
。要在地址栏中获取“静态”(seo / fancy)网址,您需要外部重定向。要让服务器做一些合理的事情,你需要进行内部重写。为了防止无限循环,您需要使用%{THE_REQUEST}
技巧。
%External redirect
RewiteCond %{THE_REQUEST} ^(GET|HEAD)\ /book\.php\?book=(.*)\ HTTP
RewriteRule ^ /book/%1? [R,L]
%Internal rewrite
RewriteRule ^book/(.*)$ /book.php?book=$1 [L]
上述规则未经测试(但它们应该有效)。如果他们有效,请将[R,L]
更改为[R=301,L]
。这将使重定向成为永久性的。这将缓存浏览器中的重定向并减少对服务器的请求数量,并使搜索引擎“记住”正确的URL。您不希望在测试时执行此操作,因为它可能会显示先前的尝试(缓存),而不是实际将请求发送到服务器。