我正在创作一个作家的网站,我想展示一些书籍,然后是一些摘录。
我希望网址如下所示: site.com/book/name-of-book site.com/book/name-of-book/excerpt
我设法用这个htacess做了第一部分:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
# Remove .php from regular pages
RewriteRule ^([^\.]+)$ $1.php [NC,L]
# Directory style books
RewriteRule ^book/(.*)$ ./book.php?slug=$1
# Directory style books excerpts
RewriteRule ^book/(.*)/excerpt$ ./book-excerpt.php?slug=$1
我的问题是第二部分,因为它无效,book.php
已加载,而不是book-excerpt.php
。
我一直在研究如何做到这一点,但整个网络上的所有解决方案似乎都不适合我。我究竟做错了什么? 第一条规则是否超越第二条规则?我该如何解决这个问题?
答案 0 :(得分:1)
由于规则相互重叠,交换所有规则(1-2-3至3-2-1)使其有效。
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
# Directory style books excerpts
RewriteRule ^book/(.*)/excerpt$ ./book-excerpt.php?slug=$1
# Directory style books
RewriteRule ^book/(.*)$ ./book.php?slug=$1
# Remove .php from regular pages
RewriteRule ^([^\.]+)$ $1.php [NC,L]