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