2012-03-13 64 views
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] 

現在我想添加一個附加條件,這將改寫一個額外的查詢字符串:

注* company_id *和* company_id *應爲實際重寫中的數字。

已經嘗試了一些迭代,但仍然無法獲得成功。

幫助讚賞!

回答

1
# 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] 
#are your sure the above rule shouldn't be : 
#RewriteRule (.*) http://www.domain.co.uk/$1 [R=301,L] 

# Friendly URLs 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)$ dev/index.php?q=$1 [L,QSA] 

#company url 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(company)/([^/]+)$ dev/index.php?q=$1&companyid=$2 [L,QSA] 
+0

Gerben - 感謝您的答案,但不幸的是它不/我不能讓它繼續工作。我已經複製了你的代碼,但是當我通過php檢查服務器變量時,它返回「REDIRECT_QUERY_STRING = q = company/*** id_here ***」,這對我來說意味着它沒有翻譯最終的「/ *** id_here ** *「爲&companyid = *** id_here ***其中*** id_here ***顯然是實際的整數ID - 任何建議非常感謝! – megaSteve4 2012-03-21 21:13:30

+0

REDIRECT_QUERY_STRING包含原始網址。 '$ _GET ['companyid']'應該包含這個id。 – Gerben 2012-03-22 17:32:09

+0

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

相關問題