За исключением некоторого URL из правила перезаписи - PullRequest
0 голосов
/ 09 октября 2018

Я вставил это правило в мой .htaccess файл:

RewriteRule ^([A-Za-z0-9-]+)/?$   index.php?content=category&categoryname=$1  [NC,L]

Таким образом, я могу получить дружественные URL, такие как: http://localhost/mysite/london

Я также хотел бы использоватьдружественный URL для моей страницы контактов, например: https://localhost/mysite/index.php?content=message, чтобы стать: https://localhost/mysite/contact

Но если я вставлю приведенное ниже правило в .htaccess ...

RewriteRule   ^contact/?$   index.php?content=message  [NC,L] 

... оно не работает, так как кажется, что правило для категорий влияет на это правило.

На самом деле, если я закомментирую правило категории ...

#RewriteRule   ^([A-Za-z0-9-]+)/?$   index.php?content=category&categoryname=$1  [NC,L]

... работает дружественное к URL правило для страницы контактов (https://localhost/mysite/contact)

Поэтому я ищу возможность исключить какой-либо параметр из правила категории, чтобы в некоторых случаях можно было перенаправить на другой URL.

Спасибо за любые предложения ...

1 Ответ

0 голосов
/ 09 октября 2018

Во-первых, вам нужно убедиться, что правило контакта помещено перед более общим, чтобы htaccess мог обработать его первым:

RewriteRule ^contact/?$ index.php?content=message [NC,L]
RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?content=category&categoryname=$1 [NC,L]

Если оно у вас есть, всегда будет выглядеть другой способ обращения к универсальному правилу.at и совпадают до того, как htaccess даже доберется до правила контакта.

Обратите внимание, что при написании ваших правил он будет соответствовать только URL-адресам, таким как

https://exmaple.com/contact

, ноне

https://exmaple.com/contact/something-else

Однако, глядя на ваше более общее правило, я предполагаю, что оно сделано намеренно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...