Как перенаправить URL-адрес одного сегмента без косой черты в конце? - PullRequest
1 голос
/ 24 октября 2019

Файл htaccess моего сайта не разрешает перенаправление одного сегмента без косой черты в конце. Если я оставлю это, он зацикливается и вылетает на сайт. Как я могу позволить своим пользователям перейти на [site] .com / winter-camp и перенаправить его? Это то, что я сейчас настроил:

RewriteEngine On

RedirectMatch permanent /find-a-park/ https://[site].com/about/find-a-park
RedirectMatch permanent /winter-camping/ https://[site].com/about/promotion-details/winter-camping

#our rules:
<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /

        # Removes index.php from ExpressionEngine URLs
        RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
        RewriteCond %{REQUEST_URI} !/system/.* [NC]
        RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]

        # Directs all EE web requests through the site index file
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>

По сути, я не хочу, чтобы мои пользователи имели , чтобы поставить косую черту в конце, чтобы попасть на страницу ввсе.

У меня есть экземпляры, которые работают, однако, поэтому я запутался. Разница лишь в том, что они являются подстраницами:

RedirectMatch permanent /parks/about/central-park https://[site].com/parks/central-park

Следует знать, что мы используем ExpressionEngine в качестве нашей CMS. Как я могу получить эти первые два перенаправления, чтобы перенаправить их URL-адреса, а не сбой моего сайта? Спасибо 101

1 Ответ

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

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

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteRule ^find-a-park/?$ https://[site].com/about/find-a-park [L,NC,R=301]
    RewriteRule ^winter-camping/?$ https://[site].com/about/promotion-details/winter-camping [L,NC,R=301]

    # Removes index.php from ExpressionEngine URLs
    RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
    RewriteCond %{REQUEST_URI} !/system/.* [NC]
    RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]

    # Directs all EE web requests through the site index file
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...