[英]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.