使用mod_rewrite重写基本URL

时间:2012-01-24 23:10:13

标签: apache mod-rewrite

我想从

重写我的某个网页的网址
http://www.mydomain.com/some/application/page.html 

http://www.mydomain.com/apply

我相信这段代码会奏效。但是在301重定向中,您经常会看到[R = 301,L]或附加到重写规则末尾的某个版本 - 是执行重定向的最佳方式下面的代码,Google会理解吗?

RewriteEngine On
RewriteRule ^([^/]*)\.html$ /some/application/page.html?=$1 [L]

2 个答案:

答案 0 :(得分:0)

据我所知,您需要[R=301,L]才能正确进行重定向。默认情况下,Apache2将使用302重定向,因此如果它是永久重定向,则应强制R = 301,如您所述。如果单独[L]始终执行301重定向,则RewriteRule的文档不清楚。安全,告诉apache到底要做什么: - )。

答案 1 :(得分:0)

我想你想这样做:

您的用户看到的网址(甚至谷歌):

http://www.mydomain.com/apply

http://www.mydomain.com/some/application/page.html 

内部(实际)网址。

然后我建议你这样做:

RewriteEngine On

#condition to redirect
RewriteCond %{REQUEST_URI} ^/?apply/?$
RewriteRule ^/?apply/?$ /some/application/page.html [L]

标志[L]Flag L docs)表示RewriteEngine停止进一步重写任何规则。这不会执行永久重定向。 你这里不需要[R=301]标志。 301用于永久重定向。在任何地方使用短网址。