如何在url中删除两个获取id

时间:2014-10-17 22:10:30

标签: php .htaccess

现在我的网址是

detail.php?category=abc&model=126

我想要这样

detail/abc-126.html

我正在使用此代码 但它运作不正常

的.htaccess

RewriteRule ^detail/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ detail.php?category=$2&model=$2

我的第二个问题是 假设我在我的网站上使用这样的目录 foldername

www.example.com/foldername/detail/abc-126.html

和我的php文件在这个文件夹中

www.example.com/foldername/detail.php

和我的.htaccess文件

www.example.com/.htaccess 

在这里

所以我如何使用foldername

这不是一个重复的帖子我搜索了很多网站,但我不明白如何解决这个

所以请帮我解决这个问题 感谢

2 个答案:

答案 0 :(得分:1)

您有两个条件,并且您引用$2两次而不是$1& $2。这是一个问题。这可能不会解决你的问题,因为我不是很擅长重写,但这只是一个开始。

你也想要abc-126.html,但你在重写之间有正斜杠,如)/(

对于你的第二个问题,我不是100%肯定你在问什么,但是如果.htaccess文件在父目录中,那么通过子目录可以感受到它的效果,除非你放了一个子目录中的新.htaccess文件。

答案 1 :(得分:1)

您正在抓取两件事,$1$2。当您创建应该重定向到的路径时,只使用$2。您必须同时使用它们才能实现此目的:

                                          .-------------------------------------.
                            .------------/------------------------------.        \
                    |----- $1 -----| |- $2 -|                            \        \
RewriteRule ^detail/([a-zA-Z0-9_-]+)-([0-9]+)\.html$ detail.php?category=$1&model=$2
相关问题