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
网址使用
/api/task/1
/api/task/skills/1
当我尝试访问/api/task/skills/1
时,它最终会触发index.php
而不是skills.php
的内容
有人可以帮忙告诉我哪里出错了吗?
答案 0 :(得分:1)
由于您的第一条规则中的此正则表达式导致mod_rewrite
循环:^api/task/([^/]+)/?$
也匹配/api/task/skills.php
和/api/task/index.php
试试这个:
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]