如何编写这个特定的mod_rewrite指令?

时间:2011-11-27 16:17:04

标签: .htaccess

您好我是mod_rewrite的新手,我需要重写以下uri:
testsite / payBill?token = EC-8TM276595T982014G& PayerID = V3GMCKGHW5XXU
这样的事 的测试网站/ index.php的PayBill&安培;令牌= $ 1和; PayerID = $ 16

我一直在搜索这个网站上的一些例子,但没有成功找到类似我的案例。

...修订
更具体一点:
这是我的基础: RewriteBase / tshirtshop
这是我需要重写的URL。

https:// localhost / tshirtshop / payBill?token = EC-2FT032799N454992F& PayerID = V3GMCKGHW5XXU

类似于:
https://localhost/tshirtshop/index.php?PayBill& token = $ 1& PayerID = $ 2

3 个答案:

答案 0 :(得分:0)

应该这样做......

RewriteEngine On

# Either RewriteBase has to point to the base or the RewriteRule has to be ^(.*)$ /index.php/$1 [L] not ^(.*)$ index.php/$1 [L]
RewriteBase /testsite/

# Only do this when the file doesn't exist
RewriteCond %{REQUEST_FILENAME} !-f

# Only do this when the directory  doesn't exist
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?(.*)$ /index.php?$1&$2 [L]

答案 1 :(得分:0)

Mod重写用于将一个URL转换为另一个URL或将一个URL的内容反映到另一个URL中。如果结果URL的数据未包含在原始数据中,那么我认为不可能这样做。

也许您想用PHP实现这一点,我建议您将所有URL重写为主PHP文件,然后从那里控制所有导航流。

答案 2 :(得分:0)

尝试将以下内容添加到.htaccess文件

RewriteEngine On
RewriteBase /tshirtshop/

RewriteCond %{HTTPS} on 
RewriteCond %{REQUEST_URI} ^/tshirtshop/paybill  [NC]
RewriteCond %{QUERY_STRING} ^token=(.+)&payerid=(.+)  [NC]
RewriteRule .* index.php?PayBill&token=%1&PayerID=%2 [L]