我有以下代码,运行良好
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]问题是,我有一个寻呼系统,并且我将另一个变量发送到我的寻呼系统的那个页面,它如下所示
&pageNum_getArticles=1#1我已经尝试做了以下工作,但是我觉得与哈希混淆了
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]发布于 2013-02-27 07:31:57
谢谢为我提供信息。那么,这方面有什么解决方案,还是我必须改变分页系统?
是。
您有两组重写规则,它们一起工作。第一条规则使用一个漂亮的URL,不需要任何查询字符串,并在内部将其重写为php脚本。第二条规则采用难看的php脚本URI,并重定向浏览器使用外观更好看的脚本URI。第一组是正确的。但是第二组使用相同的规则路由到脚本。您需要为分页创建另一个分组,因为$2不对任何匹配进行反向引用。
尝试:
# 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:
RewriteRule ^ http://www.mydomain.com/articles/%1/%2#%2? [R=301,L,NE]https://stackoverflow.com/questions/15106056
复制相似问题