我是mod-rewrite的新手,我试图对这个url进行mod重写但没有成功。
这样的网址结构:
http://mysite.com/script.php?id=15751890&xp=862297&wm=1721&ls=2725&he=63530&ks=23050&eath=53588&tk=10&ck=john&rk=37
我想将其重新编写为:
http://mysite.com/script.php?id=15751890
或者:
http://mysite.com/15751890/862297/1721/2725/63530/23050/53588/10/john/37
我遵循了此http://wettone.com/code/clean-urls和此http://net.tutsplus.com/tutorials/other/a-deeper-look-at-mod_rewrite-for-apache/
但是不能写呢
在htaccess文件中输入什么
答案 0 :(得分:0)
好吧,如果你真的想写这样的重写,你应该能够在你的htaccess文件中使用它。可能有更好的方法来处理URL,但是,我给你的是你所要求的。
注意:我要删除您提供的网址。
RewriteEngine on
RewriteRule (.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*) script.php?id=$1&xp=$2&wm=$3&ls=$4&he=$5&ks=$6&eath=$7&tk=$8&ck=$9&rk=$10&%{QUERY_STRING}$ [L]
因此,您可以将此类型的URL与重写一起使用。
http://mysite.com/15751890/862297/1721/2725/63530/23050/53588/10/john/37
答案 1 :(得分:-1)
请参阅我对这个问题的回答:
这会给你这个:
http://mysite.com/15751890/862297/1721/2725/63530/23050/53588/10/john/37
答案 2 :(得分:-1)
您应该学习MVC路由方法,而不是试图弄清楚每个重写组合。
这样,您将所有路由到PHP路由器,然后根据需要将请求定向到控制器等。
HTACCESS重写所有内容:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
在PHP脚本中,您可以使用:$_SERVER['REQUEST_URI']
来获取请求的URI。
示例:http://example.com/foo/bar/95将重写为index.php,然后$_SERVER['REQUEST_URI']
将为/foo/bar/95
- 然后您进行相应的路由。
通常,您的网址结构如下:
http://example.com/controller/action/param_1/param_2/param_3/etc
而“action”只是控制器方法的另一个名称。你如何编码取决于你。