мод переписать - разрешить полную остановку - PullRequest
1 голос
/ 24 октября 2011

Мне нужно правило перезаписи, которое позволяет делать полные остановки. Как я могу допустить это? Что я хочу для shop / domain / www.test.com, чтобы стать shop / domain / controller.php? param1 = www.test.com

Исходное правило, которое у меня есть, ниже:

RewriteRule ^ shop / domain /([^/.]+)/?$ shop / stock / controller.php? Param1 = $ 1 [NC]

Это работает, но только если я удаляю полный стоп.

Я также пробовал следующее:

RewriteRule ^ shop / domain / ([^ /] +) /? $ Shop / domain / controller.php? Param1 = $ 1 [NC]

Это разрешает полный останов, но затем имеет значение controller.php, когда оно должно быть www.test.com.

1 Ответ

0 голосов
/ 24 октября 2011

Если все домены начинаются с "www.", Вы можете сделать это

RewriteRule ^shop/domain/www\.([^/]+)/?$ shop/domain/controller.php?param1=$1 [NC,L]

Проблема с вашим правилом в том, что оно также соответствует controller.php, как если бы оно было доменом. Чтобы предотвратить это, вы можете добавить два следующих условия перезаписи:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^shop/domain/([^/]+)/?$ shop/domain/controller.php?param1=$1 [NC,L]

!-d означает отсутствие существующего каталога, !-f означает отсутствие существующего файла (например, controller.php).

...