Не могу написать правильный файл htaccess для перенаправления URL - PullRequest
0 голосов
/ 15 мая 2018

Я прочитал множество других ответов по этому делу, но ничего не помогло. У меня есть этот сайт http://allutas.com со следующей структурой папок

Allutas
 Application 
   Controllers
      index.php
   Models
   Views
 System
 index.php

при посещении http://allutas.com страница индекса выполняет некоторые проверки и, если все правильно, отправляет пользователя в Application / Controllers / index.php

и все остальные страницы, которые пользователь может посетить, также находятся в этой папке контроллеров

Я просто пытаюсь удалить или скрыть часть подкаталогов на моем веб-сайте из всех файлов в папке контроллера вместе с расширением .php, поэтому вместо

http://allutas.com/Application/Controllers/index.php или же http://allutas.com/Application/Controllers/about.php

Я хочу, чтобы это было так

http://allutas.com/index или же http://allutas.com/about

Я пробовал много других ответов, и в итоге они ничего не делали или вызвали внутреннюю ошибку сервера 500

вот пример файла htaccess, который выдаст внутреннюю ошибку сервера 500

 <IfModule mod_rewrite.c>
 RewriteEngine On    
 RewriteRule ^(.*)$  application/controllers/$1 [L]
 </IfModule>

Если это поможет, мой хост использует Apache версии 2.4.3-25 и PHP версии 5.6.27

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

В файле .htaccess вы:

RewriteEngine On

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

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

Идет в индекс. Устанавливает $_GET['url'] на то, что следует после доменного имени сайта.

В вашем файле index.php (рядом с файлом .htaccess ): вы сможете легко получить содержимое $_GET['url'] без проблем!

$url = $_GET['url'];
echo $url;

Вот что вы получите:

Текст1 / Text2 / Text3

Обычно используется как,

  1. text1 относится к контроллеру
  2. text2 относится к действию
  3. text3 относится к параметрам

Делай с ней что хочешь!

0 голосов
/ 16 мая 2018

Можете ли вы попробовать это -

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteBase /Allutas/
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ Application/Controllers/$1 [L]    
</IfModule>

Это должно работать для ссылок этого типа: http://allutas.com/about.php http://allutas.com/index.php

...