2016-04-24 40 views
0

我通過index.php發送每個請求,除了我的博客子目錄中的頁面。我已經能夠在我的父文件夾中使用mod_rewrite來做到這一點,爲什麼這個mod_rewrite沒有重新定向?

RewriteCond %{REQUEST_URI} !^/blog 
    RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

]

不過,我也想將請求發送到我的博客文件夾,如果他們有以下形式:

文檔/一些文件。

我已經試過:

RewriteRule ^/documentation/(.+)$ https://www.some_domain.com/blog/documentation/$1 

看起來像我的請求沒有得到在這種情況下,發到博客上的文件夾。我的全代碼如下:

RewriteEngine On 

#redirect to index.php as appropriate 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^/documentation/(.+)$ https://www.some_domain.com/blog/documentation/$1 

RewriteCond %{REQUEST_URI} !^/blog 

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

編輯:

我使用的@下面Rijul的建議和之前的RewriteCond重寫規則的移動後,它的工作原理我所希望的一個稍作修改的版本。換句話說,重寫文檔會重寫博客子文件夾。而且,所有其他請求都會通過我的index.php文件。在這一點上,我想明白爲什麼。

RewriteEngine On 
RewriteRule ^documentation/?(.*)$ /blog/documentation/$1 [R=301,L] 

#redirect to index.php as appropriate 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 


RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

回答

2

據我所知

RewriteEngine On 

如果沒有這一切的重寫規則和條件將被忽略

RewriteRule ^documentation/?(.*)$ /blog/documentation/$1 [R=301,L] 

重複寫文檔,博客/文檔

RewriteCond %{REQUEST_FILENAME} !-d 

這重寫公司ndition將檢查請求的目錄名稱是否不存在。如果它不存在。然後進入下一個條件

RewriteCond %{REQUEST_FILENAME} !-f 

該重寫條件檢查請求的文件名是否不存在。如果它不存在。然後進入下一個條件

RewriteCond %{REQUEST_FILENAME} !-l 

該重寫條件檢查所請求的符號鏈接是否不存在。如果它不存在。然後前進到重寫規則

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

重寫到index.php?URL =

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 

寫入改寫條件這樣產生和操作。

(以該名稱沒有文件退出)和(在該名稱的目錄退出)和 (在該名稱的符號鏈接退出)

如果這是真的,那麼重寫PHP文件。(沒有目錄以該名字退出)將在/博客(因爲這樣的目錄退出)的情況​​下變爲假

+0

它是一半的工作!現在,如果我把文檔/它的工作很好。但是,現在它不會執行我的任何「非文檔」重定向。例如,我不相信它曾經在「一般」情況下成爲最後一行。 – Eric

+0

您能否提供一個無法正常工作的示例url及其預期結果 –

+0

例如,www.my_domain.com/authenticate/show-user-login-form應該轉到我的登錄頁面(它沒有上面的代碼)。或者,像www.my_domain.com這樣基本的東西應該通過index.php路由並顯示主頁。兩者都沒有發生。 – Eric

相關問題