我在託管服務器上進行內部重寫時遇到問題。這在我的開發和測試服務器上完美工作,但是當.htaccess移植到生產共享主機時,內部重寫不會發生。在託管服務器上進行內部apache重寫的問題
.htaccess正在讀取(驗證) 重寫規則與'重定向'的作品,但內部重寫沒有。瀏覽器中的網址顯示正確的友好鏈接,但內部重寫沒有發生,我最終在主頁上。
這裏是一塊與重寫:
Options +FollowSymLinks -Indexes
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} -f [OR]
RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{ENV:REDIRECT_STATUS} !^$
RewriteRule .* - [L]
RewriteRule ^contact/$ index.php?pid=3 [QSA,L]
所以我在瀏覽器URL將顯示www.mydomain.com/contact/但我在主頁。
如果我改變RewriteRule^contact/$到^ contact/$ http://www.mydomain.com/index.php?pid=3我得到重定向,但這不是我想要的..我想要內部重寫。
看着日誌,我沒有收到404,所以看起來我只是打到了目錄的根目錄。
任何想法??
謝謝! 韓紙
UPDATE:收到一封電子郵件,從託管服務提供商,說明他們不熟悉我重寫「風格」,這是他們建議什麼:
RedirectPermanent /contact/ http://www.mydomain.com/index.php?pid=3
嗯...白癡。我希望我們能夠識別什麼阻止了我的重寫工作,所以我可以回頭看看他們。我猜這是Apache的配置問題?請幫忙。
感謝您的評論。我嘗試更改^ contact/$ /index.php?pid=3 [QSA,L],但這不起作用。同樣的結果。 – hanji