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损坏了。