進出口使用我的htaccess以下htaccess的非www到www,同時保持準確的URL
RewriteCond %{HTTP_HOST} !^www
RewriteRule ^(.*)$ http://www.website.com [R=301,L]
這工作,只是我有這樣website.com/name?query=1
輸入網址時,重寫被刪除/名稱與非www的網址
所以website.com/name?query=1
將改寫爲www.website.com/?query=1
也爲Im使用Zend框架工作和具有默認/公共文件夾中的重寫使用
RewriteCond %{HTTP_HOST} !^www
RewriteRule ^(.*)$ http://www.website.com/$1 [QSA,R=301,L]
當它使鏈接看起來像這樣www.website.com//public/name?query=1
我要沒有它不寫//公衆,我不想更改網站的結構,因爲有許多指針指向/公用文件夾
如何讓RewriteRule將非www更改爲www並且不刪除「name」?
用於重寫這個http://www.website.com//public/name?itemdetails=456我需要它不是寫/公共 – user1735078
我正確地回答了你的問題,你問。如果你嘗試訪問,比如說'http:// www.website.com/admin/login.php&msg = error',它將重定向到http://site.com/admin/login.php&msg = error',保持URL完整。除非你還有別的事情發生,否則我建議在重寫條件之上添加一個'RewriteBase/public /',如果所有內容都在'/ public /'中。 – Dave
這是一個通用的解決方案,很好的討論。問題是,HTTP_HOST取決於服務器的配置,Apache中的ServerName,我認爲。使用%{REQUEST_URI}可能更可靠 –