我的.htaccess文件有问题。
我的问题
当我使用以下网址进入我的网页时:
http://www.website.com/sys/module/photos/
我可以通过以下网址在该页面上添加一些照片:
http://www.website.com/sys/module/photos/add/10/
或
http://www.website.com/sys/module/photos/add/485/
现在我在索引.php文件上有分页,我想像这样进入页面:
http://www.website.com/sys/module/photos/
然后使用以下网址转到下一页:
http://www.website.com/sys/module/photos/1/
这是我的.htaccess文件
RewriteEngine On
RewriteRule add/(.*)/$ add.php?id=$1
RewriteRule (.*)/$ index.php?page=$1
但是,如果我现在去http://www.website.com/sys/module/photos/add/10/
它将显示index.php文件的内容。
如何解决此问题?
我假设您的htaccess文件位于"photos"文件夹中,因此您的规则需要如下所示:
RewriteEngine On
RewriteRule ^add/([0-9]+)/?$ add.php?id=$1 [L]
RewriteRule ^([0-9]+)/?$ index.php?page=$1 [L]
您将缩小匹配范围,将捕获组限制为仅数字。
.htaccess应该看起来像这样:
RewriteEngine On
RewriteRule add/(.*)/$ add.php?id=$1
RewriteRule ^$ index.php
如评论中所述,.*
将匹配所有内容,包括 网址http://www.website.com/sys/module/photos/add/10/
.
解决方案是更改底部重写规则以仅匹配主页(当您的路径为/时(