編輯文件匹配:得到它的工作,這裏的最終版本國防部重寫子目錄中的
RewriteCond $1 ^(.*?)/(.*)$
RewriteCond apps/%1/content/%2 -F
RewriteRule (.*) apps/%1/content/%2 [QSA,last]
編輯:底部
我有這個原來的問題接近工作,這是在我的mod_rewrite規則
RewriteCond $1 ^(.*?)/(.*)$
RewriteCond %{DOCUMENT_ROOT}/johnsmith/apps/%1/content/%2 -f
RewriteRule (.*) apps/%1/content/%2 [QSA,last]
這將正確路線
http://host/johnsmith/blog/css/style.css
請求
/docroot/johnsmith/apps/blog/content/css/style.css
但是,我需要硬編碼到JohnSmith對下JohnSmith對.htaccess文件。是否有可能使用相對路徑,如果沒有,是否有可用的變量,所以我知道當前的.htaccess目錄?
下面
原來的問題比方說,我有/文檔根目錄的文檔根 我有一個CSS文件位於此處將Apache Web應用程序:
/docroot/johnsmith/apps/blog/content/css/style.css
我想要檢索與此文件請求
http://host/johnsmith/blog/css/style.css
.htaccess文件必須位於johnsmith文件夾中。以下規則集導致無限重定向循環
RewriteCond ^(.*?)/(.*)$ apps/$1/content/$2 -f
RewriteRule ^(.*?)/(.*)$ apps/$1/content/$2 [QSA,last]
如果我改變它咯,除暴安良的條件,我可以去一個頁面是一個簡單的PHP腳本打印出來的查詢字符串,這表明
RewriteRule ^(.*?)/(.*)$ showquerystring.php?path=apps/$1/content/$2 [QSA,last]
path等於apps/blog/content/css/style.css,這正是我所期望的。
有誰能告訴我我錯過了什麼嗎?
此外,johnsmith文件夾可以命名爲任何內容,並且johnsmith中的.htaccess文件不應該硬編碼johnsmith。
更簡潔地說,我要問的是:
是否有可用的一個變量mod_rewrite的,這將等於/blog/css/style.css
%{DOCUMENT_ROOT} /應用/ $ 1 /內容/ $ 2將不能工作,因爲文檔根目錄爲/文檔根目錄,以便Apache將在/ docroot/apps /中查找。 。 。當文件實際上在/ docroot/johnsmith/apps /中時。 。 。 – Dave
另外,如果它有效地匹配文件,它將不會無限循環。 – Dave