我正在使用多語言支持的網站。該網址的格式爲:htaccess在多語言網站上顯示主站點而不是子文件夾
https://example.com/gb/en/
https://example.com/fr/fr/
gb
是指國家,en
指的是語言。 .htaccess
文件處理這些變量並從文件中加載特定於語言的數據。
我想在子文件夾中複製此網站,並使其完全獨立工作到原始網站。
https://example.com/promo/gb/en/
https://example.com/promo/fr/fr/
我.htaccess
文件看起來像這樣:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,NC,L]
ErrorDocument 404 /404.php
#force https
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://example.com/$1 [R,L]
RewriteRule \.js$ /sprocketize.php [QSA,L,NC]
RewriteRule ^(admin) - [L,NC]
RewriteRule ^(app) - [L,NC]
RewriteRule ^(ws) - [L,NC]
RewriteRule ^(opia) - [L,NC]
RewriteRule ^promo-select(/)?$ /promo-select.php [L,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} ^(www.)?example\.com$ [NC]
RewriteRule ^([a-z]{2})/(.+)/$ http://%{HTTP_HOST}/$1/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z]{2})/([a-z]{2})(?:/(.*)|)$ /$1/$3?lang=$2 [NC,QSA,PT]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z]{2})(?:/(.*)|)$ /$2?country=$1 [NC,QSA,PT]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php !-f
RewriteRule ^([^/]+)/(.*)$ /$2?keyword=$1 [NC,QSA,PT]
RewriteCond %{REQUEST_URI} !(\.[^./]+)$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ /$1.php [NC,QSA]
我試圖改變
RewriteRule ^([^/]+)/(.*)$ /$2?keyword=$1 [NC,QSA,PT]
到
RewriteRule ^promo/([^/]+)/(.*)$ /promo/$2?keyword=$1 [NC,QSA,PT]
等,但它要麼加載原始網站或顯示'找不到網頁'的錯誤。我也嘗試加入RewriteBase /promo
,但它只是加載主站點。我懷疑我正在做一些明顯/愚蠢的錯誤。謝謝。
UPDATE
我應該說,在子文件夾中的文件是一樣的根文件夾,包括.htaccess
文件。有2 .htaccess
文件,1個在根目錄中,1個在子文件夾中。我一直在編輯子文件夾中的一個。
我目前得到它的工作作爲http://promo.example.com/gb/en /但這並不理想,因爲它沒有通過SSL。 – gmadd 2012-02-23 12:59:54