我正在尝试为我的网站创建SEO友好的URL,我遇到了无法解决的问题。我无法弄清楚如何设置重写规则,因此它将显示例如www.mysite.com/shows/late-night和www.mysite.com/news/title-of-article。这是我的htaccess文件:
RewriteEngine on
RewriteRule ^(.*)/([a-z_-]+) index.php?switch=$1&shows=$2 [NC,L]
RewriteRule ^(.*)/([a-z_-]+) index.php?switch=$1&article=$2 [NC,L]
RewriteRule ^shows/$ index.php?switch=shows [NC,L]
RewriteRule ^articles/$ index.php?switch=article [NC,L]
如果我注释掉第一行和第三行,重写规则会起作用,但我怎么这样做都会有效。
答案 0 :(得分:1)
第1和第2规则不能共存,因为它们匹配相同的URI模式。只有第一个会一直这样。像这样调整你的规则:
RewriteEngine on
RewriteRule ^(shows)/([a-z_-]+)/?$ index.php?switch=$1&shows=$2 [NC,L,QSA]
RewriteRule ^(news)/([a-z_-]+)/?$ index.php?switch=$1&article=$2 [NC,L,QSA]
RewriteRule ^(shows|news|articles)/?$ index.php?switch=$1 [NC,L,QSA]