.htaccess从子目录提供索引

时间:2017-07-04 13:51:51

标签: apache .htaccess mod-rewrite

我在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/

1 个答案:

答案 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]