对我来说这是一个全新的领域,请耐心等待。我想为我正在制作的动态网站创建“永久链接”。目前,使用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变量创建站点地图?
答案 0 :(得分:1)
问题1和2: 在这种情况下不需要这种条件。像这样使用它:
RewriteRule ^/page/([\w-]+).html$ /page.php?title=$1 [L,R=301]
这改变了
/page/blabla.html
到/page.php?title=blabla
您需要使用page.php
问题3: 我建议你永远不要在任何锚链接或xml站点地图中使用网址的查询字符串变体。这样蜘蛛只知道友好的网址。