переписать мой URL с помощью htaccess - PullRequest
1 голос
/ 24 июня 2011

Я работаю в проекте codeigniter. Я хочу переписать свой URL с помощью htaccess.У меня есть URL-адрес типа abc.com/main/demo, и я хочу изменить его на abc.com/demo Я просто удаляю «основной».как мне этого добиться.

Извините за плохой английский: (* ​​1005 *

Ответы [ 5 ]

1 голос
/ 15 июля 2011

** Это должно сделать это:

RewriteEngine On 
RewriteBase / 
RewriteRule ^main/(.*)$ /$1 [R]

это подойдет, или вы можете перейти на www.tossdown.com для более подробной информации **

1 голос
/ 24 июня 2011

На самом деле, если подумать, это, вероятно, то, что вы просите:

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteBase /main

    RewriteRule ^(/)?$ index.php/$1 [L]

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

    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
1 голос
/ 24 июня 2011

Вам не нужен mod_rewrite для простых перенаправлений.

Для вас должно быть достаточно инструкций apache Redirect или RedirectMatch:

RedirectMatch 302 ^/main/(.*)$ https://my.website.com/$1

Здесь я использую перенаправление 302, так что это просто временное перенаправление, когда ваш сайт будет в порядке (и это перенаправление работает), вы должны изменить его в 301, чтобы он стал постоянным.

Теперь все, что мы делаем в нашем ответе, - это как заставить ваших веб-HTTP-клиентов использовать / demo url вместо / main / demo. Но вы жалуетесь на 404 ... хорошо, если у вас нет рабочего index.php или index.html в корневом / демо-каталоге, это 'normal' .

Так что, я полагаю, ваш вопрос не только в том, как перенаправить пользователя в другой каталог, но и в том, как создать каталог /var/www/mysite/main/demo (или что-то в этом роде) со всеми файлами в этом каталоге, отвечая в / demo / * url а не / main / demo / *. В этой конфигурации мы можем угадать /var/www/mysite/ ваш DocumentRoot . то есть это корень вашего веб-сервера. Самое простое решение - изменить этот корень, изменив DocumentRoot на /var/www/mysite/main. Вы можете сделать это в основной конфигурации вашего VirtualHost, может быть, вы также можете создать новый VirtualHost для вашего проекта.

Если у вас нет доступа к основной конфигурации apache, но есть только .htaccess, и если вы запускаете несколько других веб-сайтов по некоторым другим URL-адресам, мы можем найти более сложные решения (например, с помощью mod_rewrite, перенаправляющим путь к физическому каталогу на основе имени веб-сайта) , Но вам нужно будет предоставить нам больше информации, если вы хотите что-то еще.

0 голосов
/ 24 июня 2011

Надеюсь, это не тысячный ответ ...

RewriteEngine On
RewriteRule ^demo/$ /main/demo/
0 голосов
/ 24 июня 2011

Это должно сделать это:

RewriteEngine On
RewriteBase /
RewriteRule ^main/(.*)$ /$1 [R]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...