Как объединить несколько переписываний HTAccess?

У меня есть следующий файл.htaccess для моего сайта:

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /$1.php [R=301,L,QSA]

Это работает в том смысле, что URL 'hello' работает так же, как 'hello.php'. Однако я хочу сделать следующее:

  1. Удалите.php из "hello.php" и перенаправьте в "hello".
  2. Удалить (и перенаправить) косую черту (если есть).

Как это может быть сделано? Я полагаю, это довольно просто.

РЕДАКТИРОВАТЬ: я просто работал над этим, и он также имеет цикл перенаправления, если вы переходите к "hello.p" и если вы переходите к "hello/".

1 ответ

Ваше текущее правило предписывает Apache 301 перенаправить на маршрут с .php расширение.

Чтобы предотвратить это, вам нужно удалить R=301 из списка флагов.

Другие вопросы по тегам