【发布时间】:2018-04-25 01:30:06
【问题描述】:
这很简单,但似乎无法弄清楚。
我有一个网址 /shows/index.php?id=1,我想在网址中显示为 /shows/1/index.php。
所以我将它添加到我的 htaccess 中:
RewriteRule ^shows/([0-9]*)/index.php$ /shows/index.php?id=$1 [L]
这就像一个魅力。我现在可以导航到 /shows/1/index.php 完全没有问题。但是,我仍然可以导航到 /shows/index.php?id=1。我希望该页面自动重定向到新的 url,所以我写了这个:
RewriteRule ^shows/index.php?id=([0-9]*)$ /shows/$1/index.php [R=301,L]
...但它什么也没做。但是,如果我这样做:
RewriteRule ^shows/([0-9]*)/0$ /shows/$1/index.php [R=301,L]
它重定向就好了。所以这让我觉得重写规则的第一部分有问题,也许吧?我对这类东西不太熟悉。
【问题讨论】:
-
index.php部分是多余的;您真的应该将/shows/?id=42重写为/shows/42/。 -
会的。谢谢。