HTACCESS index.php 参数

HTACCES index.php Parameters

我的 .htaccess 文件有问题。


我的问题

当我进入我的网页时 url:

http://www.website.com/sys/module/photos/

我可以通过以下方式在那个页面上添加一些照片 url:

http://www.website.com/sys/module/photos/add/10/

http://www.website.com/sys/module/photos/add/485/



现在我在 index.php 文件上有分页,我想这样输入页面:

http://www.website.com/sys/module/photos/

然后转到下一页 url:

http://www.website.com/sys/module/photos/1/



这是我的 .htaccess 文件

RewriteEngine On
RewriteRule add/(.*)/$ add.php?id=
RewriteRule (.*)/$ index.php?page=



但是,如果我现在转到 http://www.website.com/sys/module/photos/add/10/,它将显示 index.php 文件的内容。

我该如何解决这个问题?

.htaccess 应如下所示:

RewriteEngine On
RewriteRule add/(.*)/$ add.php?id=
RewriteRule ^$ index.php

如评论中所述,.* 将匹配所有内容,包括 url http://www.website.com/sys/module/photos/add/10/

解决方案是将底部重写规则更改为仅匹配主页(当您的路径为/时)

我假设您的 htaccess 文件位于 "photos" 文件夹中,因此您的规则需要如下所示:

RewriteEngine On
RewriteRule ^add/([0-9]+)/?$ add.php?id= [L]
RewriteRule ^([0-9]+)/?$ index.php?page= [L]

您将缩小匹配范围,将捕获组限制为仅数字。