我將從這個答案中獲取一個代碼: Redirect folder to another with htaccess
所以,我想知道RewriteBase 到底去哪兒了?!根據鏈接答案中的聰明人的說法,它轉到了RewriteRule的第一部分。所以第二部分需要一個斜杠(“/”)
Options FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteRule ^test/(.*)$ /new/$1 [L,NC,R=302]
我不記得在哪里,但我在某處讀到它進入第二部分。而實際上我的.htaccess 就是按照這個規則寫的。所以,我的重寫規則是這樣的
RewriteRule ^script$ folder/some_script [L,NC,R=302]
實際上它對我有用。但是現在我閱讀了鏈接的答案,因為我需要其他東西而且我很困惑。我不知道這是否會影響性能,我只想做對。我想知道“它真正的去向”,是第一部分,第二部分,還是兩者兼而有之?現在我需要從檔案夾 腳本重定向到另一個檔案夾 腳本。那么它應該是怎樣的呢?
#v1
RewriteBase /
RewriteRule ^/folder/some_script$ other_folder/some_other_script [L,NC,R=302]
?
#v2
RewriteBase /
RewriteRule ^folder/some_script$ /other_folder/some_other_script [L,NC,R=302]
?
#v3
RewriteBase /
RewriteRule ^/folder/some_script$ /other_folder/some_other_script [L,NC,R=302]?
?
#v4
RewriteBase /
RewriteRule ^folder/some_script$ other_folder/some_other_script [L,NC,R=302]?
我想澄清一下“是”,我需要重定向到另一個檔案夾并且該檔案夾具有不同名稱的腳本,所以我不需要這個“$ 1”。還有一件事,請不要猜測,如果您不確定,請不要回答。我也可以猜到很多事情,我可以測驗這是否有效。我知道當我把斜線放在第二部分時,它會起作用,如果你不把它也起作用。我是說:
RewriteBase /
# this works for me correctly
RewriteRule ^some_script$ folder/some_script [L,NC,R=302]
# this also works for me correctly, but I use the first way
# RewriteRule ^script$ /folder/some_script [L,NC,R=302]
我想知道它是如何正確的!而且我想知道如何通過檔案夾重定向來正確地做到這一點。
uj5u.com熱心網友回復:
如果 RewriteRule 的目標(第二個引數)是相對的,那么 的值RewriteBase會附加到它的前面。
所以,讓我們舉個RewriteBase /some/path/例子。
RewriteRule ^foo$ /bar: RewriteBase 不適用,因為目標 (/bar) 是絕對的RewriteRule ^foo$ http://%{HTTP_HOST}/bar:相同,因為它是指向 URL 的 HTTP 重定向,但仍然不是相對路徑RewriteRule ^foo$ bar:RewriteBase適用,因為bar是相對的,所以請求/foo將被重寫為/some/path/bar
但是,等等,它也可以在沒有明確的RewriteBase? 是的,它可以:Apache 能夠“猜測”默認情況下添加到相對目標的路徑,但在某些情況下 Apache 無法正確猜測它(例如,當一個開始播放Alias或使用)VirtualDocumentRootUserDir
如果使用相對路徑(而不是 URL)進行重定向(R=30[12]),Apache 的作業方式相同:它只會ServerName在其頂部添加適當的方案。
筆記:
重寫規則 ^/folder/some_script$ ...
在目錄背景關系中,如 .htaccess 檔案,這種規則永遠不會匹配,^/因為 Apache 會截斷路徑以洗掉與此背景關系相對應的路徑部分,包括其最后一個/(例如:如果 URL 的路徑是,在位于 DocumentRoot 的 .htaccess 檔案中/foo測驗的路徑只是,而不是字串)。RewriteRulefoo/foo
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/431732.html
