[英]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.