косая черта из URL-адреса URL только для некоторых URL-адресов php - PullRequest
0 голосов
/ 23 января 2019

Я хочу переписать некоторые URL-адреса с .php в конечные URL-адреса с косой чертой. Однако я не хочу переписывать все URL.

Мой код:

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^GET\ /[^?\s]+\.php
RewriteRule (.*)\.php$ /$1/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/(.+)/$
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^(.*)/$ $1.php [L]


RewriteCond %{REQUEST_URI}  !\.(php?|jpg|gif|png|css|js|html|json|xml|eot|svg|ttf|woff|woff2|zip|csv|xlsx|webp|txt|gz|rar)$
RewriteRule ^(.*)([^/])$ https://%{HTTP_HOST}/$1$2/ [L,R=301]

Я хочу принудительный удар:

  • / about-us.php => / about-us /
  • / services.php => / services /

Мне не нужна косая черта:

  • / cart.php => /cart.php
  • / auth.php => /auth.php

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Вы можете использовать эти правила в корне своего сайта .htaccess:

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} \s/+(about-us|services)(?:\.php)?[\s?] [NC]
RewriteRule ^ /%1/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f    
RewriteCond %{REQUEST_URI} !\.(php?|jpg|gif|png|css|js|html|json|xml|eot|svg|ttf|woff|woff2|zip|csv|xlsx|webp|txt|gz|rar)$ [NC]
RewriteRule [^/]$ %{REQUEST_URI}/ [L,R=301,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

Обязательно используйте только эти правила в корневом .htaccess и тестируйте из нового браузера или командной строки curl.

0 голосов
/ 23 января 2019

Вы можете использовать это, чтобы удалить косую черту из ваших /cart и /auth URI. Поместите следующие два правила прямо под RewriteBase строкой в ​​вашем htaccess:

#remove the trailing slash
RewriteRule ^(cart|auth)/$ $1 [L,R]
#rewrite /cart and /auth to their original location
RewriteRule ^(cart|auth)$ $1.php [L]
...