簡體   English   中英

將靜態網址重定向為動態網址

[英]Redirect static url to dynamic

我正在嘗試將現有流量重定向到一個重寫的站點,該站點現在在Apache服務器上使用帶有RewriteRule動態URL。

whatever.com/directory/some_page重定向到whatever.com/directory/?m=some_page

重寫URL的每個示例都顯示了另一種方式(從動態到靜態),因此似乎很難找到有效的示例。 到目前為止,我嘗試過的所有操作都不執行任何操作,或者返回500服務器錯誤。

原始的some_page仍然存在,但是現在不是索引文件,而是一堆jpg的

重要的是要理解,您所說的示例是Rewrites,即重寫用戶看到的URL,以便應用程序獲取它可以理解的URL。 聽起來您想要的是一個重定向,在該重定向中,客戶將URL更改為新URL,然后再將其發送到應用程序。

要從what.com/directory/?m=some_page重定向到what.com/directory/some_page,您可以執行此操作。

RewriteBase /
RewiteCond %{QUERY_STRING} m=([^&]+) [NC]
RewriteRule ^directory/.? /directory/%1 [NC, L, R] 

要將內容從what.com/directory/?m=some_page 重寫為what.com/directory/some_page,可以執行此操作。

RewriteBase /
RewiteCond %{QUERY_STRING} m=([^&]+) [NC]
RewriteRule ^directory/.? /directory/%1 [NC, L]

要從what.com/directory/some_page / directory /?m = some_page 重定向 ,您可以執行此操作。

RewriteBase /
RewriteRule ^directory/([^/]+)/? /directory/$1 [NC, L, R] 

要從what.com/directory/some_page / directory /?m = some_page進行重寫 ,您可以執行此操作。

RewriteBase /
RewriteRule ^directory/([^/]+)/? /directory/$1 [NC, L]

通過閱讀您的問題,我不能完全確定您要做什么,但是上述問題之一可以解決它。

.htaccess陷入循環,因為我無法獲取它來處理查詢字符串(很可能是由於我的經驗不足),所以我利用了403的優勢,方法是導航到/directory/some_page仍然返回但沒有索引文件(.htaccess拒絕目錄列表)。

現在將403發送到php錯誤頁面,該頁面使用header()重定向到/directory/?m=some_page的正確地址。

我知道調用額外頁面會產生額外的開銷,但是這種情況發生的頻率並不高(根據服務器日志),並且可以正常工作。

暫無
暫無

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

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