[英]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 實例的系統上的目錄進行映射。 它不會向瀏覽器返回任何東西(即沒有重定向代碼,什么也沒有)。 這一切都是在內部完成的。 因此,您的客戶甚至不知道它在那里。
配置
[...]
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.