0

我是 mod-rewrite 的新手,我试图 mod-rewrite 这个 url 没有成功。

URL结构如下:

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文件中输入什么

4

3 回答 3

0

好吧,如果你真的想写这样的重写,你应该可以在你的 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
于 2013-07-05T21:31:19.650 回答
-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- 然后您进行相应的路由。

通常,您的 URL 结构如下所示:

http://example.com/controller/action/param_1/param_2/param_3/etc

而“动作”只是控制器方法的另一个名称。如何编码取决于您。

于 2013-07-05T19:48:20.877 回答
-1

参考我对这个问题的回答:

php,处理唯一的 URL

这会给你这个:

http://mysite.com/15751890/862297/1721/2725/63530/23050/53588/10/john/37
于 2013-07-05T19:47:46.240 回答