как создать хороший htaccess

1

Извините, я только начинаю узнавать о файлах.htaccess. Я пытаюсь написать это так (мой файл htaccess)

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /exmpl/vadik_route/
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  ReqriteRule ^(.*)$ index.php/$l
</IfModule>

и мой index.php

<?php 
echo $_SERVER['PATH_INFO'];

 ?>

но сервер через эту ошибку.

Server error!

The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there was an error in a CGI script.

If you think this is a server error, please contact the webmaster.

Error 500

localhost
Apache/2.4.17 (Win32) OpenSSL/1.0.2d PHP/5.6.15

Как я могу исправить это

  • 2
    $ l должен быть $ 1, а его перезапись не переписать.
  • 0
    журнал ошибок сервера? например /var/log/apache2/error.log в Debian. Кроме того, в основной конфигурации apache есть AllowOverride ?
Показать ещё 1 комментарий
Теги:
.htaccess
web

3 ответа

1

вы можете отправить URL-адрес методом get, например getme.php? url =/controller/model/, и вы можете взять URL-адрес и делить на косую черту

 $_GET['url'] //it is going to show you the url.

давайте посмотрим на.htaccess и объясним это.

    RewriteEngine On
    RewriteBase / #dont forget to modify this part. it is explain which folder you project in
    RewriteEngine On Options All -Indexes RewriteBase /directoryname/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    ###############  SEO     ##########################


#http://www.example.com/hello/booboo/ it takes the url  after .com/


       RewriteRule ^(.*)$ getme.php?url=$1 [QSA,L]

теперь мы отправили весь URL-адрес getme.php, и мы можем использовать его

getme.php

<?php

//we redirect to get in url=$1 so our get method name is url
$parca = explode("/", $_GET["url"]); //and we divided the url by slash .

echo $parca[0];//this is first part "/hello/
echo $parca[1];// and this is second part "/booboo/;
?>
  • 0
    спасибо за подробные ответы. Особенно @AhmetAtak ваш пример довольно ясен. Саг ол гардас!
  • 0
    Я создал файлы .htaccess и index.php, в которых я могу задать четкий путь для своих папок, но у меня есть папка для входа в систему, где находятся все мои файлы для входа, а также файлы языковых настроек. Когда я выбираю один из языков, это выглядит так: `form.php? Lang = kr`. Я не смог записать путь к ним в главном файле index.php. Так что, я тоже должен создавать для них файлы htaccess? Моя цель - создать веб-страницу с четким URL. Если это возможно, дайте мне знать?
Показать ещё 1 комментарий
0

<?php
  session_start();
  //Define Language file paths
  define("LANG_EN_PATH", $_SERVER['DOCUMENT_ROOT'] . '/exmpl/sayt/multilang/en/');
  define("LANG_RU_PATH", $_SERVER['DOCUMENT_ROOT'] . '/exmpl/sayt/multilang/ru/');
  define("LANG_KR_PATH", $_SERVER['DOCUMENT_ROOT'] . '/exmpl/sayt/multilang/kr/');
  define("LANG_TR_PATH", $_SERVER['DOCUMENT_ROOT'] . '/exmpl/sayt/multilang/tr/');
 
if (isset($_GET['lang'])) 
{
     
    // GET request found
 
    if ($_GET['lang'] == 'ru') 
    {
      include LANG_RU_PATH . 'ru.php';
      $_SESSION['lang'] = 'ru';
    }  
    
    else if ($_GET['lang']=='en') {
      include LANG_EN_PATH .'en.php';
      $_SESSION['lang'] = 'en';
    }
    
    else if ($_GET['lang']=='tr') {
      include LANG_TR_PATH .'tr.php';
      $_SESSION['lang'] = 'tr';
    }

    else
    {
    include LANG_KR_PATH . 'kr.php';
    $_SESSION['lang'] = 'kr';
    }

}   
     
     //translate for russian
      else if (isset($_SESSION['lang'])) 
      {
 
    if ($_SESSION['lang'] == 'ru') 
          {
           include LANG_RU_PATH . 'ru.php';
          } 
 //translate for kyrg 
    else if($_SESSION['lang'] == 'en') 
        {
          include LANG_KR_PATH . 'en.php';
          $_SESSION['lang'] = 'en';
        }
        
   // translate for turkish
    if($_SESSION['lang'] == 'tr') 
        {
          include LANG_TR_PATH . 'tr.php';
          $_SESSION['lang'] = 'tr';
        }

     else {
          include LANG_KR_PATH . 'kr.php';
          }
     
                   
     } 
     
     
    
    else 
    {
     
    include LANG_KR_PATH . 'kr.php';
    $_SESSION['lang'] = 'kr';
  }

?>

вы могли бы написать путь для этого, так как ясный URL-адрес

0

Измените свой.htaccess следующим образом:

<IfModule mod_rewrite.c>
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню