Как добавить конечный sla sh к URL с помощью htaccess? - PullRequest
1 голос
/ 22 января 2020

Я хочу перенаправить с author/$username на author/$username/. $username - это имя пользователя .

Это мой .htaccess контент:

RewriteEngine on
RewriteRule ^author/([A-Za-z0-9-\+]+)/?$ author/index.php?username=$1 [NC,L,QSA]
RewriteRule ^authorpost/([A-Za-z0-9-\+]+)/postid/([0-9]+)/?$ author/index.php?username=$1&postid=$2 [NC,L,QSA]

Как мне его изменить?

1 Ответ

0 голосов
/ 22 января 2020

Итак, если я правильно понимаю, вам просто нужно добавить sla sh к URL /author/<username>?

Попробуйте что-то вроде этого в верхней части .htaccess файла:

RewriteRule ^(author/[A-Za-z0-9+-]+)$ /$1/ [R=302,L]

+ внутри класса символов не имеет особого значения, поэтому его не нужно экранировать. Дефис (-) должен находиться в начале или конце класса символов, чтобы соответствовать буквальному дефису (без необходимости экранировать его).

В следующем переписывании теперь можно принудительно использовать завершающий символ sla sh, вместо того, чтобы сделать его необязательным. Например:

RewriteRule ^author/([A-Za-z0-9+-]+)/$ author/index.php?username=$1 [NC,L,QSA]

Сводка

RewriteEngine On

# Append trailing slash if omitted
RewriteRule ^(author/[A-Za-z0-9+-]+)$ /$1/ [NC,R=302,L]

# Internal rewrites...
RewriteRule ^author/([A-Za-z0-9+-]+)/$ author/index.php?username=$1 [NC,L,QSA]
RewriteRule ^authorpost/([A-Za-z0-9+-]+)/postid/([0-9]+)/?$ author/index.php?username=$1&postid=$2 [NC,L,QSA]

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

...