我想制作一个重写规则,该规则适用于同一文件夹中包含的两个不同文件。
localhost/nameOfUser will be applied to index.php
localhost/nameOfUser?score=12 or localhost/nameOfUser/12 will be applied to post.php
我设法让第一个与
一起工作RewriteEngine On
RewriteRule ^(css|fonts)($|/) - [L]
RewriteRule ^(php|avatars)($|/) - [L]
RewriteRule ^(user|post)($|/) - [L]
RewriteRule ^(.*)$ index.php?user=$1 [NC,QSA]
如果我添加
RewriteRule ^(.*)$ post.php?user=$1 [NC,QSA]
第二个开始工作,但第一个没有。
是否可以在同一个.htaccess文件中重写两个不同的文件?
答案 0 :(得分:1)
尝试以下规则:
RewriteEngine On
RewriteRule ^(css|fonts|php|avatars|user|post)($|/) - [L]
RewriteRule ^([^/]+)$ index.php?user=$1 [NC,QSA,L]
RewriteRule ^([^/]+)/([^/]+)$ post.php?user=$1&score=$2 [NC,QSA,L]
但是,如果您希望nameOfUser?score=12
有效,则需要将其修改为:
RewriteEngine On
RewriteRule ^(css|fonts|php|avatars|user|post)($|/) - [L]
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^([^/]+)$ /index.php?user=$1 [NC,QSA,L]
RewriteCond %{QUERY_STRING} ^score=(.+)$
RewriteRule ^([^/]+) /post.php?user=$1&score=%1 [NC,L]