Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Вопрос о перезаписи URL-адреса Apache для начинающих

Автор вопроса: CommunityОтветов: 2

Я просто пытаюсь выяснить, на правильном ли я пути - буду признательна за дополнительную информацию о переписывании URL-адреса в моем примере.

Я установил программу CMS и просто хотел бы, чтобы www.example.com указывал на www.example.com/cms. Я просто хочу знать, является ли переписывание URL-адресов через apache лучшим способом для этого?

Спасибо.

url-rewritingapache

Ответы

Ответ 1 · рейтинг 2 · elzapp

Просто перенаправьте http://example.com/ на http://example.com/cms:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewritRule ^/?$ /cms/
</IfModule>

Перенаправление всех URL-адресов, которые в противном случае имели бы 404d, чтобы начинаться с /cms/:

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

Перенаправление всех URL-адресов на /cms/:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^(.*)$ /cms/$1 [L]
  <Directory /var/www/html/cms/> #change this to the correct path
    RewriteEngine Off
  </Directory>
</IfModule>

Ответ 2 · рейтинг 1 · S Pangborn

Это определенно подход, который я бы выбрал. Я предполагаю, что вы используете Apache, хотя это можно легко сделать и с IIS. Вам нужно будет отредактировать файл .htaccess в корневом каталоге, чтобы сделать это с помощью mod_rewrite.

<IfModule mod_rewrite.c>

   RewriteEngine on

   RewriteRule    ^(.*)$ /cms/$1  [L]

</IfModule>

Это должно работать для того, что вам нужно. Измените "cms" на любой каталог, в который вы хотите переписать.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы