那里有很多信息,但我在interwebz上读过的内容并没有给我一个答案,说明为什么我的htaccess无效。
我无法确定为什么我的规则不会像我想象的那样重写URL。我有以下网址:
domain.com/Book/bookpage/index.php?bookID=123&bookName=foo_bar
我想更改它,以便当有人点击该网址时,它会显示为:
domain.com/Book/123/foo_bar
我开始试图仅使用书籍ID来使其工作,甚至没有让它工作。
这就是我到目前为止:
RewriteRule ^Book/([0-9]+)$ /Book/bookpage/index.php?bookID=$2
但是,将htaccess放在网站的根目录并转到URL后:
domain.com/Book/bookpage/index.php?bookID=123
地址栏中的网址保持不变。
答案 0 :(得分:2)
试试这个:
RewriteEngine On
RewriteBase /
# this rewrite domain.com/Book/123 or domain.com/Book/123/
RewriteRule ^Book/([0-9]+)/?$ /Book/bookpage/index.php?bookID=$2 [L,NC,QSA]
# this rewrite domain.com/Book/123/title or domain.com/Book/123/title/
RewriteRule ^Book/([0-9]+)/([a-z0-9\-_]+)/?$ /Book/bookpage/index.php?bookID=$1&bookName=$2 [L,NC,QSA]
答案 1 :(得分:0)
尝试在行尾添加[L,R = 301]:
RewriteRule ^Book/([0-9]+)$ /Book/bookpage/index.php?bookID=$2 [L,R=301]