【发布时间】:2025-12-31 12:10:12
【问题描述】:
我有一个小问题:
我的网址:localhost/cat/Category/Subcategory/Page
示例:本地主机/猫/电影/3d/7
代码:
RewriteRule ^([a-z0-9\-]+)/([a-z0-9\-]+)/?$ $1.php?wq=$2 [NC,L] ## wq is Category
RewriteRule ^([a-z0-9\-]+)/([a-z0-9\-]+)/([a-z0-9\-]+)/?$ $1.php?wq=$2&wsq=$3 [NC,L] ## wsq is Subcategory / but if no Subcategory and Pagination -> False it must be "&wpq="
RewriteRule ^([a-z0-9\-]+)/([a-z0-9\-]+)/([a-z0-9\-]+)/([a-z0-9\-]+)/?$ $1.php?wq=$2&wsq=$3&wpq=$4 [NC,L] ## wpq is Pagination
我当前的 htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z0-9\-]+)/?$ $1.php [NC,L]
RewriteRule ^([a-z0-9\-]+)/([a-z0-9\-]+)/?$ $1.php?wq=$2 [NC,L] ## wq is Category
RewriteRule ^([a-z0-9\-]+)/([a-z0-9\-]+)/([a-z0-9\-]+)/?$ $1.php?wq=$2&wsq=$3 [NC,L] ## wsq is Subcategory / but if no Subcategory and Pagination -> False it must be "&wpq="
RewriteRule ^([a-z0-9\-]+)/([a-z0-9\-]+)/([a-z0-9\-]+)/([a-z0-9\-]+)/?$ $1.php?wq=$2&wsq=$3&wpq=$4 [NC,L] ## wpq is Pagination
RewriteCond %{REQUEST_METHOD} !POST [NC]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NE]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([\w.-]+)/?$ $1.php [L]
这样就可以了,只有输入一个类别(并且没有子类别)时才有问题,然后应该检查参数2是否只有数字。
如果只输入数字,那么它不是子类别而是分页参数(那么第二个参数必须是“wsq”而不是“wsq”)。
希望你明白我的意思:D
这可以用 Php 完成,但我认为通过 .htaccess 更好?
已经提前谢谢你了。
【问题讨论】:
标签: apache .htaccess parameters subquery categories