2011-10-14 69 views
0

我有两个重写规则,这就是我想要达到htaccess的简单重写规则被忽略

用户链接 - >内部链接

site.com/dir1/dir2/ AB - mypage.php页= ? - > site.com/dir1/dir2/script.php?code= AB &页=

site.com/dir1/dir2/ CD -mypage.php - > site.com/dir1/dir2/script.php?code= CD

正如你所看到的,第二个是一样的为第一,但支持分页。

这里是htaccess的代码:

RewriteRule ^dir1/dir2/(.*)-mypage.php?page=(.*)$ dir1/dir2/script.php?code=$1&page=$2 
RewriteRule ^dir1/dir2/(.*)-mypage.php$ dir1/dir2/script.php?code=$1 

分页规则被完全忽略,没有错误。在我的script.php中,当我打印查询字符串时,唯一存在的变量是代码。第二条规则也需要页码。

编辑: 柜面任何人有这个问题,这可能帮助:问号的问题,如果我使用一个不同的字符它的工作原理,我得到两个变量(?)。如果你不关心问号,这可能是一个解决方案。要保留问号,请使用接受的答案来解决。

回答

3

而不是使2条规则,使用[QSA](代表查询字符串附加) - 将原来的查询字符串附加到修改一:

RewriteRule ^dir1/dir2/(.*)-mypage.php$ dir1/dir2/script.php?code=$1 [QSA] 
+0

这解决了它的感谢。 – MrCode

0

查询字符串被忽略。你不需要的第一条规则,只需使用QSA标志:

RewriteRule ^dir1/dir2/(.*)-mypage.php$ dir1/dir2/script.php?code=$1 [QSA]