簡體   English   中英

網址重寫子目錄

[英]Url Rewrite in a subdirectory

我正在使用Restler在Apache服務器上構建REST API,但遇到一些URL重寫問題。
這是我的目錄:

/ API:
/供應商
...
.htaccess(1級)
/上市 :
/例子
/測試
/ src目錄
.htaccess(第二級)
/資源管理器:
/ CSS
/圖片
/ lib目錄
的index.html

現在,這是我想要的:
1)我想要其他人看不見的“公共”目錄。
例如,像GET mydomain.com/api/data這樣的請求將直接將其選擇到mydomain.com/api/public/data中

2)我希望“ public”目錄的根目錄為explorer / index.html,但是此文件以相對方式加載大量資源,有時卻不加載。

因此,基本上,如果我僅嘗試訪問: mydomain.com/api,我想訪問加載了所有資源的/api/public/explorer/index.html

這是我現在所擁有的:

Options +FollowSymLinks
AddDefaultCharset UTF-8

RewriteEngine On
RewriteBase /api/
RewriteCond %{REQUEST_URI} !^public/
RewriteRule ^(.*)$ /api/public/$1

對於第一級.htaccess,它似乎運行得很好

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^/$ explorer/ [QSA,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
<IfModule mod_php5.c>
    php_flag display_errors On
</IfModule>

對於第二級.htaccess

有什么要求嗎? 謝謝

這條規則:

RewriteRule ^/$ explorer/ [QSA,L]

這行不通,因為達到該規則的請求將去除前導斜杠:

RewriteRule ^$ explorer/ [QSA,L]

但是我也不確定那不是您想要的,因為要遵守該規則,您需要執行以下操作:

http://mydomain.com/api/

如果這是您想要的,則只需刪除該前導斜線即可。

暫無
暫無

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

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