首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mod_rewrite问题: URL中仍然显示php变量

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

Stack Overflow用户
提问于 2011-04-19 07:37:55
回答 3查看 45关注 0票数 0

我一直在使用mod_rewrite,似乎无法让url显示出很好的效果,仍然在URL中显示php变量。

这是当前的htaccess:

代码语言:javascript
复制
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

EN

回答 3

Stack Overflow用户

发布于 2011-04-19 08:46:46

我不知道这是不是真的有问题,但是看起来,有一个反斜杠和一个美元符号太多了

代码语言:javascript
复制
^/display/([^/]+)$/([^/]+)\$
                 |        |

^/display/([^/]+)/([^/]+)$
票数 0
EN

Stack Overflow用户

发布于 2011-04-19 11:38:38

如果您在浏览器中键入URL,则会进行重写。所以mod_rewrite正在做它的工作,但是当使用变量访问时,它不会重写URL:

http://www.domain.tld/display.php?photo_id=2304&photo_size=Large (无重写) http://www.domain.tld/display/2304/Large (键入时有效)

我是不是漏掉了什么?

使用下面的信息,仍然没有重定向,不确定我是否将代码放在了错误的地方,或者mod_rewrite的某些东西可能在apache中损坏了。

票数 0
EN

Stack Overflow用户

发布于 2011-04-19 20:44:05

您的重写规则是将http://www.domain.tld/display/2304/Large重写为http://www.domain.tld/display.php?photo_id=2304&photo_size=Large (意思是将第一个存储在第二个位置)

如果希望将键入http://www.domain.tld/display.php?photo_id=2304&photo_size=Large的用户重定向到http://www.domain.tld/display/2304/Large,则需要:

代码语言:javascript
复制
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

你必须添加一些像这样的东西

代码语言:javascript
复制
RewriteCond %{REDIRECT_URL} !^display.php$
RewriteRule ^/display/([^/]+)/([^/]+)$ display.php?photo_id=$1&photo_size=$2

以避免无限循环。

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

https://stackoverflow.com/questions/5710040

复制
相关文章

相似问题

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