簡體   English   中英

用子目錄重寫URL

[英]Rewrite url with subdirectory

我在Web目錄中有該域的域主項目。 現在,我需要將類似的項目放在域根目錄的子目錄中。

domain.com
|-web
|   |-index.php
|   |-assets
|
|-subdirectory
|   |-web
|       |index.php
|       |-assets

我的第一個項目domain.com/homepage的示例URL是使用htaccess重寫為domain.com/web/index.php?url=homepage。 資產url被重寫到資產目錄。

/.htaccess

RewriteEngine On
RewriteRule ^(.*)$ web/$1 [L]

/web/.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} \.(gif|png|jpe?g|ico|swf|js|css)$ [NC]
RewriteRule .* - [R=404,L]

# rewrite assets version to orginal location
RewriteCond %{REQUEST_URI} assets/([0-9]+)/
RewriteRule ^assets/([0-9]+)/(.*)$ assets/$2

RewriteCond %{REQUEST_URI} !\.(gif|jpg|png)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?url=$1 [L,QSA]

它工作正常,但是如何擴展此htaccess或在子目錄中添加另一個.htaccess來重寫子目錄url?

應該將示例domain.com/subdirectory/homepage重寫為domain.com/subdirectory/web/index.php?url=homepage

解:

/.htaccess/subdirectory/.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(.*)$ web/$1 [L,QSA]
</IfModule>

/web/.htaccess/subdirectory/web/.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} \.(gif|png|jpe?g|ico|swf|js|css)$ [NC]
    RewriteRule .* - [R=404,L]

    # rewrite assets version to orginal location
    RewriteCond %{REQUEST_URI} assets/([0-9]+)/
    RewriteRule ^assets/([0-9]+)/(.*)$ assets/$2

    RewriteCond %{REQUEST_URI} !\.(gif|jpg|png)$
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
</IfModule>

最后:

domain.com/start重寫為domain.com/web/index?url=start

domain.com/subdirectory/start重寫為domain.com/subdirectory/web/index?url=start

排除/subdirectory在根目錄下重寫,並應用htaccess文件夾下的規則subdirectory一樣的根目錄。

/.htaccess

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/subdirectory
RewriteRule ^(.*)$ web/$1 [L]

暫無
暫無

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

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