[英]Clean URL with htaccess
I am new on this forum, so i need help. 我是这个论坛的新手,所以我需要帮助。 I'm working on my website with PHP/MySQL and I stack with .htaccess 我正在使用PHP / MySQL创建网站,并使用.htaccess进行堆栈
So there is my code 所以有我的代码
<a href="namebook-'.$row['book_name'].'" class="btnmore">Review</a>
And there is my htaccess, 还有我的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
And with code I get URL like this: mywebsite.com/book/namebook-book1 通过代码,我得到如下URL:mywebsite.com/book/namebook-book1
So I want to get clean URL like this: mywebsite/book/book1 所以我想获得像这样的干净URL:mywebsite / book / book1
Sounds like you just need to remove namebook
from the first part of the URL? 听起来您只需要从URL的第一部分中删除namebook
?
ie change this: 即更改此:
<a href="namebook-'.$row['book_name'].'" class="btnmore">Review</a>
to this: 对此:
<a href="'.$row['book_name'].'" class="btnmore">Review</a>
The key here is your last rewrite rule: 关键是您的最后重写规则:
RewriteRule ^book/namebook-([a-zA-Z0-9.\/\-\?\&]+)\.php$ book/namebook.php?name=$1
Your rewrite rule is sending your requested value (anything that matches [a-zA-Z0-9.\\/\\-\\?\\&]+
) to your PHP script but only if your URL matches book/namebook-<variable>
- eg mywebsite/book/namebook-book1
. 您的重写规则会将您请求的值(与[a-zA-Z0-9.\\/\\-\\?\\&]+
匹配的任何值)发送到PHP脚本,但book/namebook-<variable>
是您的URL与book/namebook-<variable>
匹配-例如mywebsite/book/namebook-book1
。
To allow mywebsite/book/book1
you need to remove namebook-
from the start of your rewrite rule: 要允许mywebsite/book/book1
namebook-
,您需要从重写规则的开头删除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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.