2014-10-17 28 views
0

我有後續項目結構時間:htaccess的被重定向到 「根目錄」 每一個沒有盡頭trailling請求完成

public_html/ 
|- app/ 
    |- webroot/ 
     |- news -> symlink to ../../news/webroot/ 
     |- .htaccess (see code 1) 
    |- .htaccess (see code 2) 
|- news/ 
    |- webroot/ 

的.htaccess 1

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteBase/
    RewriteRule ^$ webroot/ [L] 
    RewriteRule (.*) webroot/$1 [L] 
</IfModule> 

的.htaccess 2

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_URI} !^/(img|css|js|fonts)/(.*)$ 
    RewriteRule ^(.*)$ index.php [QSA,L] 
</IfModule> 

當我請求/news(作爲框架管理的漂亮URL)時,請求被重定向到/webroot/news/由apache,而不是加載新聞。我找不到什麼不對,你有什麼建議?

所以,如果我點擊:news該頁面將被重定向到/webroot/news/。如果我點擊:news/頁面重定向到/news/ (使用子域名的cPanel的域內)

+0

如果你的子域指向public_html/app,那麼你應該刪除符號鏈接public_html/app/webroot/news,否則Apache找到它並且不會將URL傳遞給index.php。 此外,CakePHP附帶的默認.htaccess沒有RewriteBase選項。 – savedario 2014-10-21 11:40:36

+0

@savedario我的應用程序字體爲public_html/app/webroot。這不是默認的htaccess。符號鏈接不匹配和'RewriteCond'規則,因此將按預期的方式作爲正常請求提供。 – 2014-10-22 02:14:35

回答

0

的public_html /應用/的.htaccess

Deleted file 

的public_html /應用/ Webroot公司/ .htaccess

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_URI} !^/(img|css|js|fonts)/(.*)$ 
    RewriteRule ^(.*)$ index.php [QSA,L] 
</IfModule> 

子域指向解決的public_html /應用/根目錄/

1

打開目錄後在根的.htaccess削減掉,因爲mod_dirmod_dir後增加了一個結尾的斜線。作爲最後的規則添加斜線,然後再返回國內:

的.htaccess 1:

<IfModule mod_rewrite.c> 
    DirectorySlash Off 
    RewriteEngine on 
    RewriteBase/

    RewriteRule (.*) webroot/$1 [L] 

    # add trailing slash for directories 
    RewriteCond %{REQUEST_FILENAME} -d 
    RewriteRule ^(.+)/$ $1 [L,NE] 
</IfModule> 
相關問題