我可以有三种类型的网址,应该重写为:
http://example.com/admin -> http://example.com/admin.php
http://example.com/admin/2 -> http://example.com/admin.php?cat=2
http://example.com/admin/2/2 -> http://example.com/admin.php?cat=2&page=2
此外,.php应该添加到项目中的所有.php文件中。
我现在有这个规则:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)/$ $1.php
RewriteRule ^admin/(\d+)/(\d+)$ admin.php?cat=$1&page=$2
我不知道如何正常工作。我需要将关于页面参数的第二条规则设置为情境,只有当它存在时,因为否则.htaccess尝试仅重写其中包含页码的整行。
有任何帮助吗?谢谢你的关注。
答案 0 :(得分:1)
您可以使用:
Options -MultiViews
RewriteEngine on
RewriteBase /
RewriteRule ^admin/(\d+)/?$ admin.php?cat=$1 [L]
RewriteRule ^admin/(\d+)/(\d+)$ admin.php?cat=$1&page=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)/?$ $1.php [L]