【发布时间】:2012-12-05 18:12:05
【问题描述】:
我有一个简单的 .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" p>
为什么执行第二个 RewriteRule 而不是第一个?是因为我要添加斜线吗?更重要的是,“book.php/php-for-dummies-10”参数从何而来?
感谢您的帮助。
【问题讨论】:
标签: php .htaccess mod-rewrite