我在PHP中有一个API,我希望使用.htaccess
文件来使用apache。服务器配置为托管特定目录https://www.example.com/~user/
。
/web/
├── index.html
└── api/
├── .htaccess
├── public/
│ └── index.php
└── src/
我希望实现的是https://www.example.com/~user/api/
为index.php
子目录中的public/
文件提供服务,同时重定向其基数:https://www.example.com/~user/api/v1/
将匹配为{在v1/
内{1}}。
最初我的设置在index.php
目录中有一个.htaccess
文件,但这会创建一个类似public/
的网址,这是不受欢迎的。
https://www.example.com/~user/api/public/v1/
答案 0 :(得分:2)
您可以在api
目录中使用这样的内容:
RewriteEngine On
RewriteBase /~user/api/
RewriteRule !^public/index\.php$ public/index.php [L]
在您的PHP中,您可以获取从$_SERVER['REQUEST_URI']
访问过的网址,其中包含原始网址。
如果您不想重写现有文件和目录,请使用:
RewriteEngine On
RewriteBase /~user/api/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !^public/index\.php$ public/index.php [L]