htaccess
RewriteEngine On
Options +FollowSymLinks
RewriteBase /
RewriteRule ^api/task/([^/]+)/?$ api/task/index.php?id=$1 [L,QSA]
RewriteRule ^api/task/skills/([^/]+)?$ api/task/skills.php?id=$1 [L,QSA]
文件夹结构
/api/task/index.php
/api/task/skills.php
Url使用
/api/task/1
/api/task/skills/1
当我尝试访问/api/task/skills/1
时,它最终会触发index.php
的内容,而不是skills.php
有人能帮我看看哪里出了问题吗?
这是因为第一条规则中的正则表达式^api/task/([^/]+)/?$
也与/api/task/skills.php
和/api/task/index.php
匹配,导致mod_rewrite
循环
试试这个:
RewriteEngine On
Options +FollowSymLinks
RewriteBase /
# skip further rules for real files/directories
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^api/task/([^/]+)/?$ api/task/index.php?id=$1 [L,QSA]
RewriteRule ^api/task/skills/([^/]+)?$ api/task/skills.php?id=$1 [L,QSA]