htaccess,mod_rewrite,从 URL 中删除部分内容

htaccess,mod_rewrite,从 URL 中删除部分内容

我想访问domain.com/api/(.*)而不是domain.com/public/api/(.*)

目录结构:

domain.com
__folder1
__folder2
__public
____api
______.htaccess2
____afolder1
____afolder2
____index.html
__folder3
__file1
__file2
__.htaccess1

.htaccess1

RewriteEngine on
SetEnv APPLICATION_ENV    production

RewriteRule ^$ /public/ [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/public/
RewriteCond %{REQUEST_URI} !^/api/
RewriteRule ^(.*)$ /public/$1 [L]

.htaccess2

RewriteEngine on
SetEnv APPLICATION_ENV    production

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]

我尝试了不同的组合,最后找到了最简单的一个。我尝试了 Alias,将 api 文件夹放在根目录等。

需要指出的是,公共文件夹中的 index.html 首先在 domain.com 上加载,公共文件夹是文档根目录。

相关内容