簡體   English   中英

mod_rewrite導致無限循環

[英]mod_rewrite leads to infinite loop

我有以下接受3個get參數的文件:v,p和pp

127.0.0.1/archive/index.php

在存檔目錄中,我有:

RewriteEngine on
RewriteCond %{QUERY_STRING}     ^v=(\d+) [NC,OR]
RewriteCond %{QUERY_STRING}     &v=(\d+)
RewriteRule ^                   /archive/%1/? [L,R=301]
RewriteRule ^(\d+)\/?$          /archive/index\.php?v=$1 [L,QSA]

代碼重寫127.0.0.1/archive/2/-> 127.0.0.1/archive/index.php?v=2

但是,當我嘗試設置301將get參數重定向到干凈的URL時,會發生無限循環。 我只需要v參數從/ archive /?v = x或/archive/index.php?v=x重定向到/ archive / x /

您可以在/archive/.htaccess使用此規則:

DirectoryIndex index.php
RewriteEngine On
RewriteBase /archive/

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} /index\.php\?v=([0-9]+) [NC]
RewriteRule ^ %1? [R=302,L]

# internal forward from pretty URL to actual one
RewriteRule ^([0-9]+)/?$ index.php?v=$1 [L,QSA]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM