0
我有一個相當標準的mod_rewrite,它與一個名爲Modx的CMS打包在一起,FURL工作正常。mod_rewrite附加查詢字符串 - 正確的語法
它將改寫
這是如下配置。
# Friendly URLs Part
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} .
# Force all pages to go to www.domain.co.uk for SEO
RewriteCond %{HTTP_HOST} !^www\.domain\.co.uk [NC]
RewriteRule (.*) http://www.domain.co.uk/dev/$1 [R=301,L]
# Friendly URLs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ dev/index.php?q=$1 [L,QSA]
現在我想添加一個附加條件,這將改寫一個額外的查詢字符串:
- http://www.domain.com/dev/company/* COMPANY_ID *
- 到http://www.domain.com/dev/index.php?q=* PAGE_ID * & COMPANY_ID = * company_id *
注* company_id *和* company_id *應爲實際重寫中的數字。
已經嘗試了一些迭代,但仍然無法獲得成功。
幫助讚賞!
Gerben - 感謝您的答案,但不幸的是它不/我不能讓它繼續工作。我已經複製了你的代碼,但是當我通過php檢查服務器變量時,它返回「REDIRECT_QUERY_STRING = q = company/*** id_here ***」,這對我來說意味着它沒有翻譯最終的「/ *** id_here ** *「爲&companyid = *** id_here ***其中*** id_here ***顯然是實際的整數ID - 任何建議非常感謝! – megaSteve4 2012-03-21 21:13:30
REDIRECT_QUERY_STRING包含原始網址。 '$ _GET ['companyid']'應該包含這個id。 – Gerben 2012-03-22 17:32:09
Gerben感謝您的幫助。使用$ _GET ['companyid']不起作用。我將「公司URL」塊移動到「Friendly URL」塊的上面,現在它可以工作,但最終的url就像domain.com/dev/company/?company_id=1我希望沒有傳統的查詢字符串,因此domain.com/dev/company/1 - 我認爲它觸發了這兩個規則,這就是爲什麼最後一個查詢字符串重新出現,但我認爲使用[L]強制這是最後一個規則運行 - 任何想法?謝謝 – megaSteve4 2012-04-28 18:05:27