2015-06-20 38 views
0

我想爲我的網站添加一個別名。因此,website.com/alias將轉到根文件夾之外的文件夾。這個文件夾包含一個不同的網站,所以我想能夠將這個別名視爲一個子域名。Apache別名爲外部目錄和所有子目錄

AliasMatch ^/subdir1/(.*)$ /var/www/otherfolder/subdir1/$1 

我希望這會匹配所有呼叫,這樣website.com/subdir1/css/style.css也將是一個有效的路徑,但所有這些都返回404錯誤。

如何使別名匹配通配符,以便該條目將覆蓋別名文件夾中的所有子目錄。我希望能夠在apache級別上執行此操作,而不必在.htaccess文件中執行此操作,因爲事情已經非常複雜,所以如果可能的話我想繞過它。

+0

從技術上講,任何子目錄不被視爲子域,無論它指向何處。它實際上是一個子目錄。子域名是subdomain.example.com,其中www.example.com是域名。 – yardpenalty

回答

0

該問題是由基本URL引起的。 「/」沒有正確的工作作爲一個基地網址。相反,我能夠根據這裏的答案來解決它。

Set RewriteBase to the current folder path dynamically

RewriteCond %{REQUEST_URI}::$1 ^(.*?/)(.*)::\2$ 
RewriteRule ^(.*)$ - [E=BASE:%1] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^%{ENV:BASE}/index.php [L] 

以上是不足以解決基於我已鏈接後的問題。

0

如果你加載了mod_alias.so http模塊,別名將會起作用。您需要編輯httpd.conf配置文件並添加下面的行並重新啓動httpd。

LoadModule alias_module modules/mod_alias.so 
+0

這個別名已經起作用了,它只是沒有選擇別名內的子目錄 –

+0

你檢查了目錄的權限嗎?你是否還觀察到/ var/log/httpd/error_log中的任何特定錯誤? – Shubhangi

+0

錯誤日誌只是說它找不到文件。由於某些原因,所有文件路徑都被剝離了子目錄。如果我訪問website.com/subdir/css,它會將我帶到website.com/css –

相關問題