我有一个简单的 .htaccess 文件:
RewriteEngine on
RewriteRule ^(.+)-([0-9]+)\.html$ book.php?title=$1&id=$2
RewriteRule ^(.+)\.html$ search.php?search=$1
如果用户输入“ php-for-dumies-10.html ”,它将被用作“ book.php?title=php-for-dummies&id=10 ”。这很好用。
如果用户输入“ phpbook.html ”,它将被用作“ search.php?search=phpbook ”。这也很好。
问题是如果用户输入“ directory/php-for-dumies-10.html ”(在 URL 中添加一个目录)按预期获取“ book.php?title=directory/php-for-dumies&id=10 ” ,我得到“ search.php?search=book.php/php-for-dumies-10 ”
为什么执行第二个 RewriteRule 而不是第一个?是因为我要添加斜线吗?更重要的是,“ book.php /php-for-dummies-10”参数从何而来?
感谢您的任何帮助。