如果网址看起来像mysite.com/index.php?myparam=test
在.htaccess中,我添加了以下行:
#RewriteRule ^([a-z]+)$ /index.php?myparam=$1 [L]
哪个效果很好! URL mysite.com/test将相应地重定向,一切正常
我想摆脱脏URL,以便如果有人手动输入mysite.com/index.php?myparam=test,他将被重定向到mysite.com/test并且仍然有效,而不会进入无限环..
答案 0 :(得分:0)
如果你想到了“路由”,你有机制将参数转换为URL并从输入的URL中获取执行参数,如果有人手动输入执行参数,你可以将他重定向到你从路由机制获得的URL。 / p>
有关symfony 1.4框架中路由机制的一些信息:
http://www.symfony-project.org/jobeet/1_4/Doctrine/en/05
我已经在几个小时内为我的大学项目写了一个路由机制,所以可以有一个。如果没有,最受欢迎的[恕我直言]路由库是部落:
答案 1 :(得分:0)
在网上进一步阅读之后好了,感谢Salman的回复,我找到了问题的答案:)
下面的代码将重写脏网址来清理一个...
RewriteCond%{THE_REQUEST} ^。 \?myparam =([a-zA-Z] +)。
RewriteRule ^(。*)$ /%1? [R = 301,L]
请注意'/%1'后面的问号非常重要,因为将它放在那里(在重定向目标上)将清除查询字符串。
之后,下面的代码会将干净的网址重定向到脏网,而不会更改网址(仍然保持干净)
RewriteRule ^([a-zA-Z] +)$ /index.php?myparam=$1 [L]
这不会导致无限循环,因为使用了THE_REQUEST,它只会响应您的请求而不是服务器端重定向(我认为)
您可能需要阅读mod_rewrite语法指南,以根据自己的需要进行自定义..