首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用寻呼系统重写htaccess中的mod

用寻呼系统重写htaccess中的mod
EN

Stack Overflow用户
提问于 2013-02-27 07:03:37
回答 1查看 778关注 0票数 2

我有以下代码,运行良好

代码语言:javascript
复制
RewriteRule ^articles/([^/\.]+)/?$ articles.php?pid=$1 [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+articles\.php\?pid=([^\s&]+) [NC]
RewriteRule ^ http://www.mydomain.com/articles/%1? [R=301,L]

问题是,我有一个寻呼系统,并且我将另一个变量发送到我的寻呼系统的那个页面,它如下所示

代码语言:javascript
复制
&pageNum_getArticles=1#1

我已经尝试做了以下工作,但是我觉得与哈希混淆了

代码语言:javascript
复制
RewriteRule ^articles/([^/\.]+)/?$ articles.php?pid=$1&pageNum_getArticles=$2 [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+articles\.php\?pid=([^\s&]+)&pageNum_getArticles=([^\s&]+) [NC]
RewriteRule ^ http://www.mydomain.com/articles/%1/%2? [R=301,L]
EN

回答 1

Stack Overflow用户

发布于 2013-02-27 07:31:57

谢谢为我提供信息。那么,这方面有什么解决方案,还是我必须改变分页系统?

是。

您有两组重写规则,它们一起工作。第一条规则使用一个漂亮的URL,不需要任何查询字符串,并在内部将其重写为php脚本。第二条规则采用难看的php脚本URI,并重定向浏览器使用外观更好看的脚本URI。第一组是正确的。但是第二组使用相同的规则路由到脚本。您需要为分页创建另一个分组,因为$2不对任何匹配进行反向引用。

尝试:

代码语言:javascript
复制
# second match here---------------v
RewriteRule ^articles/([^/.]+)/([^/.]+)/?$ articles.php?pid=$1&pageNum_getArticles=$2 [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+articles\.php\?pid=([^\s&]+)&pageNum_getArticles=([^\s&]+) [NC]
RewriteRule ^ http://www.mydomain.com/articles/%1/%2? [R=301,L]

请注意,如果您仍然希望使用不使用分页的规则,则需要在使用分页的规则()之后使用非分页规则()。

此外,如果由于某种原因,如果您的分页没有URL片段而无法工作,并且该片段总是与分页号相同,则只需将其添加到重定向的末尾即可。但你需要一个像联邦航空局建议的NE:

代码语言:javascript
复制
RewriteRule ^ http://www.mydomain.com/articles/%1/%2#%2? [R=301,L,NE]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15106056

复制
相关文章

相似问题

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