簡體   English   中英

使用 Apache Alias 而不是 RewriteRule 來提供 HTML 頁面

[英]use Apache Alias instead of RewriteRule to serve HTML page

Apache 配置中的簡單別名不起作用 -

Alias /url/path/some-deleted-page.html /url/path-modified/new-avatar-of-some-deleted-page.html 

它給出“找不到頁面”。 然而,RewriteRule 按預期工作,但它將重定向狀態發送到瀏覽器。 我希望瀏覽器/用戶不知道重定向。 因此,我想使用 Alias 而不是 RewriteRule。 我想確認是否可以使用 mod_alias 來映射單個 URL。

我還使用 ProxyPassMatch,它將所有 html 頁面作為 PHP 腳本執行。 添加 ProxyPass 也沒什么區別。

ProxyPass /url/path/some-deleted-page.html !

請幫忙,以便我可以使用別名而不是 RewriteRule 映射單個 URL(一堆)。

mod_alias的目的是將請求的 URL 與運行 httpd 實例的系統上的目錄進行映射。 它不會向瀏覽器返回任何東西(即沒有重定向代碼,什么也沒有)。 這一切都是在內部完成的。 因此,您的客戶甚至不知道它在那里。

請求: http : //www.example.com/someurl/index.html

配置

[...]
DocumentRoot "/opt/apache/htdocs"
Alias "/someurl/" "/opt/other_path/someurl_files/"
[...]

在這種情況下,請求除/someurl/之外的任何 URL 的用戶將收到來自/opt/apache/htdocs

如果用戶要求/someurl/ ,將使用來自/opt/other_path/someurl_files/文件。

此示例中仍然缺少用於保護Alias目錄的<Directory>定義。

您應該閱讀: https : //httpd.apache.org/docs/2.4/mod/mod_alias.html


Alias將涵蓋您需要將某個 URL 指向文件系統上特定目錄的情況。

如果您需要修改文件名(即客戶端要求文件 A,而您發回頁面 B),則應使用RewriteRule 為了隱藏您更改文件名的事實,請使用[P]標志。

該指令允許您使用正則表達式,但仍使用代理機制。 所以你的客戶確實知道發生了什么,因為他地址欄中的地址不會改變。

暫無
暫無

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

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