首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将查询参数mod_rewrite为路径文件夹名?

如何将查询参数mod_rewrite为路径文件夹名?
EN

Stack Overflow用户
提问于 2013-05-09 22:45:27
回答 1查看 604关注 0票数 2

我正在使用url-rewriting执行我的第一步操作,无法完成以下操作:

在我的应用程序中,可以通过将查询参数?skin=some_id应用于应用程序中的任何页面来加载皮肤。我想要改变:

代码语言:javascript
复制
 http://www.mysite.com/anypage.html?skin=123

转入:

代码语言:javascript
复制
 http://www.mysite.com/123/anypage.html

但我不能让它起作用。

这就是我目前在我的httpd.conf中拥有的

代码语言:javascript
复制
<IfModule mod_rewrite.c>
    RRewriteRule (.*)/(.*)?app=(.*)$ %1/%3/%2 [NC,R=301,L]
</IfModule>

问题:

这不管用,所以我想知道我做错了什么?

同样,在URL有效的情况下,用户输入的URL是什么?http://www.mysite.com/123/anypage.html哪个“映射”到http://www.mysite.com/anypage.html?skin=123

如果我想访问查询参数,是否必须从实际的URL (?skin=...)或重写的url中提取它?

谢谢你帮忙!

编辑:

因此,我让它像这样工作(有用的测试人员这里):

代码语言:javascript
复制
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} skin=(\w+)
RewriteRule ^.*\.html /%1? [R=301]
</IfModule>

这将重定向:

代码语言:javascript
复制
 www.some.com/index.html?skin=xyz   =>  www.some.com/xyz

还没到呢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-10 00:25:17

我建议以不同的方式对应用程序进行剥皮。你现在拥有它的方式将产生重复的内容问题与搜索引擎,因为他们将看到相同的内容,为您的网站上的每一个皮肤。

也就是说,yoursite.com/dark/about.html将是与yoursite.com/spring/about.html相同的内容,因此搜索引擎可能很难决定使用哪个版本。此外,它似乎将创建额外的工作链接到您的网站上的其他页面,因为您将不得不创建您的链接通过编程使用适当的路径和皮肤。

我只需要一个URL来激活皮肤,并将它们的偏好存储在cookie或会话中,并根据cookie/session值来皮肤站点,并且只维护一组URL。

除非您真的希望皮肤在URL中,否则我会避免使用URL或查询字符串来指示要使用的皮肤。相反,请将其作为附加到帐户或存储在cookie中的首选项。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16472401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档