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
我很好奇爲什麼除了錯誤文檔之外的所有條件都使用了背部而不是在linux中的目錄分隔符的標準正斜槓。 (我也不希望'''需要逃避,但我可能會錯) – Jon
什麼是'RewriteCond%{REQUEST_URI}!api \ dispatch \ .php $'不應該是'RewriteCond %{REQUEST_URI}!api/dispatch \ .php $' – AbraCadaver
這些來自我安裝的CMS軟件包'開箱即用'。除了重寫URL之外,對於發生的事情知之甚少。 – malteseKnight