Как мне создать mod_rewrite, который перенаправляет на launch.php?i=/the/url/that/they/want?

StackOverflow https://stackoverflow.com/questions/158328

  •  03-07-2019
  •  | 
  •  

Вопрос

Итак, если пользователь вводит mydomain.com/панель мониторинга, документ, который сервер фактически отправляет им, /launch.php?i=/панель мониторинга.

Единственное предостережение: я хотел бы оставлять запросы на

  • /флаги
  • /люди
  • /плакаты
  • /css
  • /значки
  • /изображений
  • /библиотеки
  • /шаблоны

в одиночку, и они должны запросить настоящую папку.

Как мне создать такой mod_rewrite?

Это было полезно?

Решение

Это файл .htaccess для ТортPHP Рамки.

Пожалуйста, замените index.php и ?url= в соответствии с вашими потребностями.

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

«!-d» указывает Apache следовать существующим папкам, а «!-f» — следовать существующим файлам.

Все остальное передается через index.php.

Как предложено в комментарии, вы должны знать, что если он не работает, это может быть связано с тем, что mod_rewrite не включен, и вы не получите сообщение об ошибке, подтверждающее этот факт, у вас, вероятно, будет только HTTP 404.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top