将根目录重写到子文件夹(.htaccess),某些目录除外

iq3niunx  于 2022-11-16  发布在  其他
关注(0)|答案(2)|浏览(152)

我有以下文件夹结构:

  • js/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  • 第1版/
  • .htaccess

对v1的请求应该照常工作。所有其他请求应该转到/app,而不更改URL

www.xxx.com/           (displays: app/index.php)
www.xxx.com/v1         (displays: v1/index.php)
www.xxx.com/js/xxx.js  (displays: app/js/xxx.js)

这可能吗?

**基本上,静态文件夹:**v1、app/js(不带app)、app/public(不带app)

所有其他请求都转到app/index.php,而不更改URL。

c6ubokkw

c6ubokkw1#

您可以在站点根目录.htaccess中使用此规则:

RewriteEngine On

# landing page
RewriteRule ^/?$ app/index.php [L]

# if v1/file exists then use it
RewriteCond %{DOCUMENT_ROOT}/v1/$1 -f
RewriteRule .+ v1/$0 [L]

# if app/public/file exists then use it
RewriteCond %{DOCUMENT_ROOT}/app/public/$1 -f
RewriteRule .+ app/public/$0 [L]

# if app/js/file exists then use it
RewriteCond %{DOCUMENT_ROOT}/app/js/$1 -f
RewriteRule .+ app/js/$0 [L]

# if not a file, not a dir and not starting with v1    
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !^v1/ app/index.php [L,NC]
olhwl3o2

olhwl3o22#

要将请求从/root重写为/subfoldwr,可以在/.htaccess中使用以下规则

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /app/index.php  [L]

这将重写从/root/app/index.php的所有内容,除了现有文件/目录

相关问题