微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mod_rewrite问题:URL仍在URL中显示php变量

如何解决mod_rewrite问题:URL仍在URL中显示php变量

|| 我一直在使用mod_rewrite,似乎无法使URL显示很好,但仍在URL中显示PHP变量。 这是当前的htaccess:
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^/display/([^/]+)$/([^/]+)\\$ http://www.mydomain.tld/display.PHP?photo_id=$1&photo_size=$2 [NC]
基本上,我已经尝试了所有方法来获得如下所示的干净URL: http://www.mydomain.tld/display/3456/large

解决方法

不知道,如果多数民众赞成在真正的问题,但似乎有一个反斜杠和一个美元符号太多
^/display/([^/]+)$/([^/]+)\\$
                 |        |

^/display/([^/]+)/([^/]+)$
,您的重写规则是将
http://www.domain.tld/display/2304/Large
重写为
http://www.domain.tld/display.php?photo_id=2304&photo_size=Large
(这意味着第一个存储在第二个位置) 如果要将键入“ 3”的用户重定向到“ 2”,则需要:
RewriteCond %{QUERY_STRING} ^photo_id=([0-9]+)&photo_size=(.*)$
RewriteRule display.php /display/%1/%2 [R,L] #R to redirect,and then change the URL in the browser
并且您必须添加类似
RewriteCond %{REDIRECT_URL} !^display.php$
RewriteRule ^/display/([^/]+)/([^/]+)$ display.php?photo_id=$1&photo_size=$2
为了避免无限循环。,很好,如果您在浏览器中输入URL,重写就可以工作..因此,mod_rewrite可以完成它的工作,但是当使用变量访问时,它不会重写URL: http://www.domain.tld/display.php?photo_id = 2304&photo_size =大(不重写) http://www.domain.tld/display/2304/Large(键入时有效) 我在某处缺少什么吗? 使用下面的信息,仍然无法重定向,不确定在我的代码放置在错误的地方还是在Apache内部mod_rewrite损坏了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。