簡體   English   中英

除某些目錄外,將根目錄重寫為子文件夾 (.htaccess)

[英]Rewrite root to subfolder (.htaccess) except some directories

我有以下文件夾結構:

  • app/(包含 index.php、js/、public/)
  • v1/
  • .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/public(不帶應用程序)

所有其他請求都轉到app/index.php而不更改 url。

要重寫請求/root/subfoldwr您可以使用下面的規則在你/.htaccess

RewriteEngine on

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

這會將除現有文件/目錄之外的所有內容從/root文件重寫到/app/index.php

您可以在站點根目錄 .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]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM