2014-05-06 40 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

回答