我是这个论坛的新人,所以我需要帮助。我正在使用PHP / MySQL在我的网站上工作,并使用.htaccess
进行堆叠所以有我的代码
<a href="namebook-'.$row['book_name'].'" class="btnmore">Review</a>
还有我的htaccess,
RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^book/namebook-([a-zA-Z0-9.\/\-\?\&]+)\.php$ book/namebook.php?name=$1
使用代码我得到这样的URL: mywebsite.com/book/namebook-book1
所以我想得到像这样的干净网址:mywebsite / book / book1
答案 0 :(得分:0)
听起来您只需要从网址的第一部分删除namebook
吗?
即。改变这个:
<a href="namebook-'.$row['book_name'].'" class="btnmore">Review</a>
到此:
<a href="'.$row['book_name'].'" class="btnmore">Review</a>
答案 1 :(得分:0)
这里的关键是你的最后一次重写规则:
RewriteRule ^book/namebook-([a-zA-Z0-9.\/\-\?\&]+)\.php$ book/namebook.php?name=$1
您的重写规则是将您请求的值(与[a-zA-Z0-9.\/\-\?\&]+
匹配的任何内容)发送到您的PHP脚本,但前提是您的网址与book/namebook-<variable>
匹配 - 例如mywebsite/book/namebook-book1
。
要允许mywebsite/book/book1
,您需要从重写规则的开头删除namebook-
:
RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^book/([a-zA-Z0-9.\/\-\?\&]+)\.php$ book/namebook.php?name=$1