0

私はApacheにこのルールを持っています:

RewriteRule ^seccion/([^/\.]+)/?$ index.php?tipo=seccion&slug=$1 [L]
RewriteRule ^seccion/([^/\.]+)/pag/([0-9]+)$ index.php?tipo=seccion&slug=$1&page=$2 [QSA,L]

どちらも完璧に機能しますが、nginxにはこの2があります

rewrite ^/seccion/([^\?]+)$ /index.php?tipo=seccion&slug=$1 last;
rewrite ^/seccion/([^\?]+)$/pag/([0-9]+)$ /index.php?tipo=seccion&slug=$1&pag=$2 last;

2 番目のパラメーターは機能しません。パラメーター 1 のみが機能しますが、実際には「支払い」とページ番号が追加されます。例

http://example.com/seccion/sports/pag/4

%slug取得します:sportspag4

私が間違っていることの手がかりはありますか?

4

2 に答える 2

0

2 番目の書き換えルールには、行末に一致し、一致を終了する余分なドル記号があります。また、最初の書き換えルールは現在すべてに一致しています。2 番目のルールの後に来るか、一致をより制限する必要があります。これを試して:

rewrite ^/seccion/([^/]+)/?$ /index.php?tipo=seccion&slug=$1 last;
rewrite ^/seccion/([^/]+)/pag/([0-9]+)$ /index.php?tipo=seccion&slug=$1&pag=$2 last;
于 2012-06-28T21:52:34.530 に答える
0

この構成を試してください (例のように、2 番目のルールを最初にする必要があります):

rewrite ^/seccion/([^/]+)/pag/([0-9]+)$ /index.php?tipo=seccion&slug=$1&pag=$2 last;

rewrite ^/seccion/(.*)$ /index.php?tipo=seccion&slug=$1 last; 
于 2012-06-29T07:53:49.837 に答える