[英]mod_rewrite URL with many variables
我是mod重写的新手,但我尝试对该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
我想对其进行mod-rewrite:
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文件中输入什么
好吧,如果您真的想编写这样的重写,您应该可以在htaccess文件中使用它。 可能有更好的方法来处理URL,但是,我正在为您提供您所要求的。
注意:我不使用您提供的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
请参阅我对这个问题的回答:
这将为您提供:
http://mysite.com/15751890/862297/1721/2725/63530/23050/53588/10/john/37
与其尝试找出所有可能的重写组合,不如学习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
然后进行相应的路由。
通常,您的URL结构如下所示:
http://example.com/controller/action/param_1/param_2/param_3/etc
而“动作”只是控制器方法的别称。 如何编写代码取决于您。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.