2014-09-01 62 views
1

我有我的託管以下文件夾結構(它是一個共享的一個)完全失去與的.htaccess

public_html 
| 
| 
|--- website (contains CodeIgniter application) 
|--- otherapp (another CodeIgniter application) 
|--- moreapp (yet another web application) 

什麼我想要做的是,當過用戶鍵入我的域名(http://example.com)它應該加載「網站」文件夾內的內容。

當用戶輸入http://otherapp.example.com時,它應該打開什麼index.php駐留在'otherapp'文件夾中。

首先我試圖此(和在根文件夾保存它[的public_html]):

Redirect /index.php http://example.com/otherapp/index.php and it pretty much screwed the URL and links. 

然後我試圖此(來自的Joomla htaccess的蠻力拷貝粘貼):

## Can be commented out if causes errors, see notes above. 
Options +FollowSymLinks 



## Mod_rewrite in use. 

RewriteEngine On 


# Block out any script trying to base64_encode data within the URL. 
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR] 

# Block out any script that includes a <script> tag in URL. 
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR] 

# Block out any script trying to set a PHP GLOBALS variable via URL. 
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] 

# Block out any script trying to modify a _REQUEST variable via URL. 
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) 

# Return 403 Forbidden header and show the content of the root homepage 
RewriteRule .* index.php [F] 


## 

# Uncomment following line if your webserver's URL 

# is not directly related to physical file paths. 

# Update Your Joomla! Directory (just/for root). 


RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 


# If the requested path and file is not /index.php and the request 
# has not already been internally rewritten to the index.php script 
RewriteCond %{REQUEST_URI} !^/index\.php 

# and the request is for something within the component folder, 
# or for the site root, or for an extensionless URL, or the 
# requested URL ends with one of the listed extensions 
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC] 

# and the requested path and file doesn't directly match a physical file 
RewriteCond %{REQUEST_FILENAME} !-f 

# and the requested path and file doesn't directly match a physical folder 
RewriteCond %{REQUEST_FILENAME} !-d 

# internally rewrite the request to the index.php script 
RewriteRule .* index.php [L] 

在otherapps文件夾(這是codeigniter的應用程序,我有這個特定的.htaccess) 其中: 1.擺脫index.php結尾蹤跡 2.通過做一些緩存加快網頁加載

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/

    #Removes access to the system folder by users. 
    #Additionally this will allow you to create a System.php controller, 
    #previously this would not have been possible. 
    #'system' can be replaced if you have renamed your system folder. 
    RewriteCond %{REQUEST_URI} ^system.* 
    RewriteRule ^(.*)$ /index.php?/$1 [L] 

    #When your application folder isn't in the system folder 
    #This snippet prevents user access to the application folder 
    #Submitted by: Fabdrol 
    #Rename 'application' to your applications folder name. 
    RewriteCond %{REQUEST_URI} ^application.* 
    RewriteRule ^(.*)$ /index.php?/$1 [L] 

    #Checks to see if the user is attempting to access a valid file, 
    #such as an image or css document, if this isn't true it sends the 
    #request to index.php 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?/$1 [L] 
</IfModule> 

<IfModule !mod_rewrite.c> 
    # If we don't have mod_rewrite installed, all 404's 
    # can be sent to index.php, and everything works as normal. 
    # Submitted by: ElliotHaughin 

    ErrorDocument 404 /index.php 
</IfModule> 


# 
# associate .js with "text/javascript" type (if not present in mime.conf) 
# 
AddType text/javascript .js 

# 
# configure mod_expires 
# 
# URL: http://httpd.apache.org/docs/2.2/mod/mod_expires.html 
# 
<IfModule mod_expires.c> 
    ExpiresActive On 
    ExpiresDefault "access plus 1 seconds" 
    ExpiresByType image/x-icon "access plus 2692000 seconds" 
    ExpiresByType image/jpeg "access plus 2692000 seconds" 
    ExpiresByType image/png "access plus 2692000 seconds" 
    ExpiresByType image/gif "access plus 2692000 seconds" 
    ExpiresByType application/x-shockwave-flash "access plus 2692000 seconds" 
    ExpiresByType text/css "access plus 2692000 seconds" 
    ExpiresByType text/javascript "access plus 2692000 seconds" 
    ExpiresByType application/x-javascript "access plus 2692000 seconds" 
    ExpiresByType text/html "access plus 600 seconds" 
    ExpiresByType application/xhtml+xml "access plus 600 seconds" 
</IfModule> 

# 
# configure mod_headers 
# 
# URL: http://httpd.apache.org/docs/2.2/mod/mod_headers.html 
# 
<IfModule mod_headers.c> 
    <FilesMatch "\\.(ico|jpe?g|png|gif|swf|css|js)$"> 
     Header set Cache-Control "max-age=2692000, public" 
     Header set Last-Modified "Mon, 31 May 2014 00:00:00 GMT" 
    </FilesMatch> 
    <FilesMatch "\\.(x?html?|php)$"> 
     Header set Cache-Control "max-age=600, private, must-revalidate" 
    </FilesMatch> 
    Header set Connection keep-alive 
</IfModule> 

#Gzip 
<ifmodule mod_deflate.c> 
    SetOutputFilter DEFLATE 
    AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-javascript application/x-httpd-php 
    BrowserMatch ^Mozilla/4 gzip-only-text/html 
    BrowserMatch ^Mozilla/4\.0[678] no-gzip 
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html 
    BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html 
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip 
    Header append Vary User-Agent env=!dont-vary 
</ifmodule> 
#End Gzip 

我現在面臨的問題是一些鏈接沒有正確重定向。我不知道如何解釋這個問題(我認爲這太亂了)。

+0

你有訪問Apache服務器的配置? – anubhava 2014-09-01 11:51:05

+0

@anubhava不,我沒有,它在共同主辦。我唯一的訪問是public_html文件夾 – Jeremy 2014-09-01 11:59:05

+0

所以你想顯示'http:// domain.com /'或罰款顯示'http:// domain.com/website'也? – anubhava 2014-09-01 12:08:31

回答

1

將這個規則在根目錄的.htaccess:

RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC] 
RewriteRule ^((?!website/).*)$ website/$1 [NC,L] 

RewriteCond %{HTTP_HOST} ^otherapp\.example\.com$ [NC] 
RewriteRule ^((?!otherapp/).*)$ otherapp/$1 [NC,L] 
+0

謝謝你的作品.... – Jeremy 2014-09-02 02:08:02

+0

不客氣。很高興它的工作。 – anubhava 2014-09-02 03:46:37