所以我一直坚持这一点,它或多或少地放在我的项目上。
刚开始做一份新工作,我目前的任务是为我们正在启动的一个新项目创建一个 API 系统。它基于 wordpress 的修改版本,我的目标是接受任何发送到 /contrib/api 的请求,而不是将其直接发送到我设置的文件,以整理传入的 URL 并相应地重定向。
这是我目前拥有的:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /contrib/
RewriteCond %{REQUEST_URI} ^/api/
RewriteRule ^/content/apis/apis\.php$ - [L]
RewriteRule ^index\.php$ - [L]
# uploaded files -- no longer needed since we're serving files directly via apache
# RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
# add a trailing slash to /network and /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin/network$ $1wp-admin/network/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) wordpress/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ wordpress/$2 [L]
RewriteRule . /contrib/index.php [L]
</IfModule>
这一切都在我面前,除了靠近顶部:
RewriteCond %{REQUEST_URI} ^/api/
RewriteRule ^/content/apis/apis\.php$ - [L]
如前所述,我的目标是接受来自 /contrib/api/ 的任何请求并将其重定向到我的文件而不是继续。相反,它似乎跳过并继续指向 wp-admin(我认为是在重定向之后)。无论如何,我的命令似乎没有被抓住,我不知道为什么。
我认为命令是先处理的,但如果它继续下去,将我的代码移到最后会使其工作吗?
我知道这是一件容易测试的事情,但我希望我能对我在做什么/做错有一些了解,而且我还没有访问服务器来实际上传/测试代码而无需通过我的老板,我想 2 周后,让我的老板每 5 分钟测试一次代码可能不是一个好主意,呵呵 :(
编辑:根据 Bob Vale 的通知,修复了路径问题。