2014-05-06 69 views
1

我遇到了.htaccess問題,我並不是很大的專家。這裏.htaccess導致雙重定向(url的雙重附加)

文件結構是:

CMS CMS \網站 CMS \網站\網站

使用GoDaddy的(Linux的多彩多重主機)我有www.example.com指向「CMS \網站\現場'。

如果我是整個網站瀏覽網址www.mainhosting.com \ cms \ sites \ site - 鏈接將正常工作。但是使用example.com鏈接會導致找不到頁面

找不到cms \ sites \ cite \ cms \ sites \ site \ page.php頁面。

這些都是.htaccess文件我有:

CMS

Options -Multiviews (WHEN I TAKE THIS AWAY THE .php extension doesnt get added but no double URL i.e. cms\sites\site\page page not found) 
Options -Indexes 
Options +FollowSymLinks 

RewriteEngine on 

RewriteCond %{REQUEST_URI} !api\\dispatch\.php$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^api/.* api/dispatch.php [L,QSA] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

CMS \網站& CMS \網站\網站

Options +FollowSymLinks 
Options -Indexes 
RewriteEngine On 

ErrorDocument 400 /page/error 
ErrorDocument 401 /page/error 
ErrorDocument 403 /page/error 
ErrorDocument 404 /page/error 
ErrorDocument 500 /page/error 

#ref: http://stackoverflow.com/questions/1698464/mod-rewrite-to-remove-php-but-still-serve-the-php-file 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 
+0

我很好奇爲什麼除了錯誤文檔之外的所有條件都使用了背部而不是在linux中的目錄分隔符的標準正斜槓。 (我也不希望'''需要逃避,但我可能會錯) – Jon

+0

什麼是'RewriteCond%{REQUEST_URI}!api \ dispatch \ .php $'不應該是'RewriteCond %{REQUEST_URI}!api/dispatch \ .php $' – AbraCadaver

+0

這些來自我安裝的CMS軟件包'開箱即用'。除了重寫URL之外,對於發生的事情知之甚少。 – malteseKnight

回答