mod_rewrite网址

时间:2012-08-29 23:49:24

标签: php mod-rewrite

我在youtube上注意到他们的url没有文件扩展名和查询字符串。我一直试图模仿类似的东西,但发现我必须包含文件扩展名或尾部斜杠。

members.php?agefrom=20&ageto=40&city=london (works)
members/?agefrom=20&ageto=40&city=london (works)
members?agefrom=20&ageto=40&city=london (doesnt work)

所以我只是想知道如何让第三种情况起作用?我在htaccess文件中尝试过一些东西。

RewriteRule ^members$ index.php?page=members&%{QUERY_STRING} [QSA,L]

我已经尝试了上述但无济于事。

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:0)

你有没有试过删除$?

答案 1 :(得分:0)

您发布的RewriteRule对members.php是否正确?和会员?它不应该与成员/ 在此之前必须有额外的RewriteRules才能首先应用并影响此规则。

但是,这条规则应该仍适用于您:

RewriteRule ^members/?$ index.php?page=members&%{QUERY_STRING} [QSA,L]
/?如果斜杠存在或者它不存在,则表示匹配。

答案 2 :(得分:0)

RewriteRule ^members/?$ index.php?page=members&%{QUERY_STRING} [QSA,L]

这最终确实有效,我所要做的就是将它移到htaccess文件的顶部。我有以下行,我猜是正在阅读。

....
RewriteCond %{REQUEST_URI} ^/members$ [OR]
....

我正在改变我对SEO URL的方法,因为我试图找到关于googlebot如何实际抓取表单以及它如何更喜欢GET方法的文章。我使用jquery来改变我的action参数来编写以下URL:

/members/london/18-to-25

我不知道谷歌有多喜欢jquery以及它是否会扫描javascript代码。我保证它只是遵循HTML代码并做了一些研究我已经改变了我的表单以使用GET方法,因此机器人可以抓取我的表单而不抱怨所以现在我的URL看起来像这样:

/members?location=london&agefrom=18&ageto=40

我是在正确的轨道上假设这个?或者我应该坚持使用jquery来重写seo友好URL的action参数?