.htaccess ModREwrite

时间:2010-05-03 07:31:55

标签: .htaccess rewrite

对我来说这是一个全新的领域,请耐心等待。我想为我正在制作的动态网站创建“永久链接”。目前,使用ID变量引用所有页面(而不是索引):

http://www.domainname.com/page.php?ID=122 (etc)

我想创建一个合适的重写规则,以便可用的URL更像这样:

http://www.domainname.com/page/'pagetitle'.html (could be .php doen't matter)

页面标题存储在数据库中,显然直接链接到ID

我是否正确地认为thr重写规则会是这样的?

RewriteCond %{QUERY_STRING} ^(([^&]*&)*)ID=([^&]+)(&+(.*))?$

RewriteRule ^page\.php$ /page/%3?%1%5 [L,R=301]

我的理想是创造

http://www.domainname.com/'pagetitle'.html

但绝对不知道该怎么做。

现在是另一个问题/子问题。

如果重写有效,即您在浏览器地址栏中输入http://www.domainname.com/page/'pagetitle'.html,htaccess文件在访问页面http://www.domainname.com/page.php?ID=122时是“另一种方式”还是必须创建一个函数来获取URL的'pagetitle'.html位并将其转换为page.php?ID = 122?

另外,抱歉,这是全新的;如果我使用http://www.domainname.com/page/'pagetitle'.html创建站点地图(xml或php等),SE蜘蛛会转到http://www.domainname.com/page.php?ID=122吗?或者我需要使用ID变量创建站点地图?

1 个答案:

答案 0 :(得分:1)

问题1和2: 在这种情况下不需要这种条件。像这样使用它:

RewriteRule ^/page/([\w-]+).html$ /page.php?title=$1 [L,R=301]

这改变了 /page/blabla.html/page.php?title=blabla 您需要使用page.php

中的title参数找到正确的页面

问题3: 我建议你永远不要在任何锚链接或xml站点地图中使用网址的查询字符串变体。这样蜘蛛只知道友好的网址。