Как определить, доступен ли mod_rewrite?

Добрый день. У меня проблема со ссылками в моем приложении. Я хочу использовать « pretty-urls' , поэтому хочу, чтобы все мои ссылки выглядели как « www.sitename.com/controller/method ». Поэтому я хочу напечатать все мои ссылки с помощью одной функции, которая будет выглядеть так:

 function link($url_segments) { if(mod_rewrite_is_available) return BASE_URL.$url_segments; else return BASE_URL."index.php".$url_segments; } 

Но я не могу понять, как определить, включен ли сервер для перезаписывания модуля. Я нашел 2 решения:

  1. Поместите в config какую-нибудь переменную (например, codeigniter), такую ​​как $config["index_variable"] для использования внутри моей функции, но это означает, что все мои клиенты должны будут изменить эту строку в config при установке приложения на хостинг
  2. Используйте функцию для обнаружения mod_rewrite, например apache_get_modules, но, как я понял, это может быть не avaibale на каком-то хостинге, и что, если сервер будет nginx?

Поэтому я хочу знать, как обнаружить это и распечатать мои ссылки.

Спасибо всем за помощь.

Solutions Collecting From Web of "Как определить, доступен ли mod_rewrite?"

Можете ли вы просто предоставить .htaccess своим клиентам, чтобы при загрузке файлов он включал режим перезаписи?

Это может быть очень сложным и сложным, лично я бы пошел на задний план.

  1. Посмотрите загруженные модули phpinfo() через phpinfo() ), чтобы узнать, есть ли mod_rewrite
  2. Попробуйте sudo apache2ctl -t -D DUMP_MODULES чтобы узнать, загружен ли mod_rewrite
  3. Попробуйте использовать файл .htaccess чтобы узнать, все ли работает.
  4. Попробуйте определить используемое серверное программное обеспечение и проанализируйте файл conf для сервера
  5. Использовать худший случай, если mod_rewrite не включен, а затем включить его вручную после установки программного обеспечения.