我有2個域名,foo.com
和bar.com
和.htaccess
文件在bar.com
問到bar.com
所有請求根重定向到foo.com
除了目錄索引文件的初始搜索,它得到指向foo.com
的特定php文件(functions.php
)。mod_rewrite的 - 檢查現有的文件和目錄
這意味着,對於bar.com
或www.bar.com
的請求將看到foo.com/functions.php
訪問和對圖像中的各種請求,樣式表等繼續訪問的foo.com/images/image.jpg
而非foo.com/function.phpimages/image.jpg
重寫的相對路徑。 這一切工作正常。
現在,問題所在。
我想在bar.com
上包含一個不重定向的子目錄。如在中,對bar.com/newdirectory/
的請求進入該目錄,並且所有相關文件請求都像正常一樣行爲,同時保持對以root身份訪問bar.com
的任何人的原始規則(如上所述)。目前我得到一個404,如果我嘗試訪問新的子目錄。
在我原來的.htaccess
文件中,我包含了一個用於檢查文件不存在的鬆散代碼。我嘗試添加的標誌!-d
檢查,如果不存在第一目錄,但這導致了請求bar.com
直去foo.com
而非foo.com/functions.php
當前.htaccess
文件:
Options +FollowSymLinks
RewriteEngine On
RewriteBase/
# Check the request isn't an existing file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^$ http://www.foo.com/functions.php [P]
RewriteCond %{REQUEST_FILENAME} !^$ [NC]
RewriteRule ^(.*) http://www.foo.com/$1 [P]
這確實出現了工作,感謝Croises。我想知道是否有解決方案可以用於未來的新子目錄?目前,我可以像這樣手動添加豁免。 – biscuitstack
你可以用'RewriteRule ^(newdirectory | otherdirectory | other | other)/? - [L]' – Croises
或者在'RewriteRule^newdirectory \ d * /?後添加一個數字並且使用相同的名字。 - [L]'爲newdirectory,newdirectory1,newdirectory2,3,4 ... – Croises