.htaccess тот же URL с или без / - PullRequest
2 голосов
/ 08 октября 2009

Я мучительно переписываю множество URL-адресов на веб-сайте, над которым я сейчас работаю, но заметил небольшую проблему:

RewriteRule ^domains/transfer$ ./cart.php?gid=11 [L,NC]

Эта строка с навигацией, если я иду к:

http://my-site/domains/transfer

Но он не будет работать с трейлингом /:

http://my-site/domains/transfer/

Есть ли способ, которым я могу изменить RewriteCode, чтобы принять любой аргумент и перейти на ту же страницу. Кажется бесполезным иметь одну и ту же строку дважды, чтобы включить '/'

Любая помощь будет оценена.

Приветствия

Ответы [ 2 ]

3 голосов
/ 08 октября 2009

Измените строку на эту:

RewriteRule ^domains/transfer/?$ ./cart.php?gid=11 [L,NC]

Магия здесь: /? и это позволяет использовать дополнительный символ, в данном случае косую черту (/), как необязательный.

Если вы хотите, чтобы что-то пришло после transfer, удалите знак доллара ($), который обозначает конец допустимого соответствия.

0 голосов
/ 08 октября 2009

Я бы порекомендовал вам разрешить только одну форму URL-адреса, одну с или без завершающей косой черты, и перенаправлять, если неправильно сформировано:

# remove trailing slash
RewriteRule (.*)/$ /$1 [L,R=301]

# add trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .*[^/]$ /$0/ [L,R=301]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...