Как объединить несколько переписываний 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'. Однако я хочу сделать следующее:
- Удалите.php из "hello.php" и перенаправьте в "hello".
- Удалить (и перенаправить) косую черту (если есть).
Как это может быть сделано? Я полагаю, это довольно просто.
РЕДАКТИРОВАТЬ: я просто работал над этим, и он также имеет цикл перенаправления, если вы переходите к "hello.p" и если вы переходите к "hello/".
1 ответ
Ваше текущее правило предписывает Apache 301 перенаправить на маршрут с .php
расширение.
Чтобы предотвратить это, вам нужно удалить R=301
из списка флагов.