0

我已经搜索了这个问题并环顾四周,但似乎无法让它在实践中发挥作用。这是我的 .htaccess 文件:

Options +FollowSymLinks
RewriteEngine on
RewriteRule /poker/(.*)/(.*)/$ /poker/?$1=$2

我试图让我的页面像这样工作:

mysite.com/poker/page/home

但这不起作用,我使用了 3 种不同的生成器并尝试从教程中手动输入,但它只是返回 404。任何想法都非常感谢,它可能真的很明显..

谢谢

4

2 回答 2

0

http://mysite.com/poker/?page=home好吧,如果正确解析,您拥有的规则确实没有错。唯一的问题是,如果这是在 htaccess 文件中,则当它与 a 匹配时,前导斜杠会从 URI 中RewriteRule删除,因此您需要将其从正则表达式中删除(或将其设为可选):

RewriteRule ^poker/(.+)/(.+)/?$ /poker/?$1=$2

并且也许(.+)改为进行分组,以便那里至少有一个字符。

于 2012-08-14T08:41:31.890 回答
0

您的示例中没有斜杠,但您的规则需要斜杠。您可以使尾部斜杠可选:

RewriteEngine on
RewriteRule /poker/(.*)/(.*)/?$ /poker/?$1=$2

但是请注意,/poker/a/b/c/d/e/f/g/这里的 uri 也是一个匹配项 -a/b/c/d/e/f将匹配第一个子模式并g匹配第二个子模式,因为(.*)它是贪婪的。如果您希望仅匹配斜杠之间的内容,请更具体 - 例如([^/]*)

于 2012-08-13T15:22:19.513 回答