Apache mod_rewrite, несколько переменных

Не возможно направить на основе имени хоста. Целое понятие DNS - что-то, что существует на более высоком уровне, чем основной сетевой трафик.

(Для большего количества информации читайте о модели OSI в целом и модели TCP/IP в частности.)

С другой стороны, протокол HTTP действительно знает об именах хостов. Следовательно необходимо смочь установить обратный прокси на внешнем адресе, запросах на переадресацию к различным внутренним адресам, на основе входящего имени хоста. Одна опция состоит в том, чтобы использовать Apache и mod_proxy.

1
задан 5 May 2012 в 02:32
3 ответа

* оператор жадный. Это означает, что он захватит столько, сколько сможет.

В вашем примере первый блок (. *) будет соответствовать / funny / 1 . Второй не будет соответствовать вообще ничего, но это нормально, потому что * соответствует «нулю или более» предыдущего символа.

Использование другого блока для сопоставления частей между косыми чертами поможет . Примерно так:

RewriteRule ^/avatars/([a-z]*)/([0-9]*)$ /avatars.php?genre=$1&page=$2

или так:

RewriteRule ^/avatars/([^/]+)/([^/]+)$ /avatars.php?genre=$1&page=$2

Там ' s также нет необходимости в операторе ? после косой черты, поскольку для того, чтобы было две переменные, косая черта должна быть там.


Apache также имеет неохотные операторы, которые являются противоположность жадным операторам. Вы можете использовать их, добавив вопросительный знак после обычно жадного оператора. Примерно так:

RewriteRule ^/avatars/(.*?)/(.*?)$ /avatars.php?genre=$1&page=$2
4
ответ дан 3 December 2019 в 17:56

Вам не нужен ]? , поскольку косые черты не являются обязательными. Однако вам, вероятно, потребуется остановить обработку после применения этого правила ([L]). Можете ли вы попробовать следующее?

RewriteRule ^/avatars/(.*)/(.*)$ /avatars.php?genre=$1&page=$2 [L]
0
ответ дан 3 December 2019 в 17:56

Думаю, вы используете /? проблема, попробуйте следующее:

RewriteEngine on
RewriteRule ^avatars/([^/]+)/([^/]+)$ avatars.php?genre=$1&page=$2 [L]
0
ответ дан 3 December 2019 в 17:56

Теги

Похожие вопросы