我现在有这个.htaccess:
DirectoryIndex index.php
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA]
字符串
如果我在根文件夹上设置我的脚本,它可以工作,但是如果我创建一个名为'api'
的新文件夹并将所有脚本移动到那里,则无法按预期工作,并且我看到一个空白页。
我这样修改了.htacess:
DirectoryIndex index.php
RewriteEngine on
RewriteBase /api/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /api/index.php [QSA]
型
1条答案
按热度按时间erhoui1w1#
不幸的是,从配置中并不完全清楚,但有两种不同的路径机制:
字符串
这与请求(或浏览器)是“相对的”。即
https://example.com/api/
不过……
型
这是相对于服务器的。所以在服务器内部,你需要在一个名为“api”的根目录中拥有这个文件。
简而言之,我认为你需要的是:
型
(note缺少的起始斜杠-表示相对于文档根的路径,而不是绝对服务器路径)
顺便说一句,使用
RewriteBase /api/
,它实际上意味着您不关心其他(未定义的)根路径(例如/api2/xx
将不匹配)。因此,可能有一个更简单的方法来解决您的原始问题:只要移动你的原始.htaccess
文件到API目录.