.htaccess скрыть подкаталог в URL - PullRequest
1 голос
/ 13 мая 2019

Искал ответ, но не мог найти тот, который решил мою конкретную проблему.

Менеджер моего сайта находится под /manager/php и хочет удалить «php» из URL.

Например, https://example.com/manager/php/topkek.php станет https://example.com/manager/topkek.php.

Попробовал это, но выдает внутреннюю ошибку сервера , вероятно, из-за бесконечных перенаправлений:

Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule ^manager/(.+)$ /manager/php/$1 [L]

1 Ответ

1 голос
/ 13 мая 2019

Ваше правило вызывает бесконечный цикл перезаписи, поскольку ваш шаблон ^manager/(.+)$ также соответствует строке подстановки /manager/php/$1.Вы должны исправить это так, чтобы шаблон не мог соответствовать пути назначения.Вы можете исключить путь /php в своем регулярном выражении, чтобы исправить ошибку.

 Options +FollowSymlinks
 RewriteEngine on
 RewriteBase /
 RewriteRule ^manager/((?!php).+)$ /manager/php/$1 [L]

Или вы можете использовать директиву RewriteCond для исключения пути назначения

Options +FollowSymlinks
 RewriteEngine on
 RewriteBase /
 RewriteCond %{REQUEST_URI} !^/manager/php 
 RewriteRule ^manager/(.+)$ /manager/php/$1 [L]
...