【问题标题】:Redirect url get variables after rewriting htaccess重写htaccess后重定向url获取变量
【发布时间】:2014-06-15 01:21:28
【问题描述】:

我原来的网址是这样的:

wwww.domain.com/car-details.php?merk=BMW&model=X5&titel=sale&car_id=3

我已经把它改写成这样:

wwww.domain.com/BMW/X5/sale/3

把它放在我的 .htaccess 中:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)/(.*)/([0-9]+)?$ /car-details.php?merk=$1&model=$2&titel=$3&car_id=$4 [L,QSA]

当我输入网址时 www.domain.com/car-details.php?merk=BMW&model=X5&titel=sale&car_id=3 它仍然有效。我希望将该网址重定向到 www.domain.com/BMW/X5/sale/3

我尝试将 [R] 标志放在我的 htaccess RewriteRule 中,但结果却相反。

我该如何解决这个问题?

【问题讨论】:

    标签: .htaccess url-redirection


    【解决方案1】:

    这是做你想做的事的好决定。
    但是您将面临循环问题。

    您可以通过使用此代码来避免它

    RewriteEngine on
    
    RewriteCond %{THE_REQUEST} \s/car-details\.php\?merk=([^&]+)&model=([^&]+)&titel=([^&]+)&car_id=([0-9]+) [NC]
    RewriteRule . /%1/%2/%3/%4? [R=301,L]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([0-9]+)?$ /car-details.php?merk=$1&model=$2&titel=$3&car_id=$4 [L]
    

    【讨论】:

    • 现在我在使用代码后得到了这个:www.domain.com////?merk=BMW&model=6-Serie&titel=BMW-3-serie-in-goede-staat!&car_id =1 我得到了我的 index.php 页面
    • 我的代码出错了,抱歉。我编辑了我的答案,你能用新代码再试一次吗?现在应该可以工作了...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    相关资源
    最近更新 更多