Я хочу перенаправить / папку / вложенную папку в /folder

#regex #.htaccess #mod-rewrite #rewrite

#регулярное выражение #.htaccess #мод-переписать #url-переписывание

Вопрос:

У меня есть страница в mydomain.com/channels/somename который отображает эту конкретную страницу (эта папка действительно существует). Я хочу, чтобы то, что я там отображаю, отображалось при переходе к mydomain.com/somename

Буду признателен за любую помощь.

Комментарии:

1. Что вы уже сделали?

2. Ну, я попробовал #RewriteRule ^ ([a-zA-Z0-9_-] ) / $ channels / $ 1 и это перенаправило mydomain.com/xxx в channels / xxx но это не то, что мне было нужно, так как нужно показывать содержимое в channels / xxxx в mydomain.com/xxx …. что случилось с людьми, которые не проголосовали за этот вопрос, кстати, lol. Так странно, хе-хе

Ответ №1:

Попробуйте добавить это в .htaccess файл в корневой папке вашего веб-документа (часто public_html или htdocs ):

 RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^([^/.] )/?$ channels/$1  [L]
  

Это предполагает, что mod_rewrite одновременно установлен и активирован для файлов htaccess.
Если вы не уверены, чтобы проверить, установлен ли mod_rewrite, посмотрите на список установленных модулей в выходных данных phpinfo();
По умолчанию mod_rewrite не включен для файлов htaccess. Если вы управляете своим собственным сервером, откройте httpd.conf
и убедитесь, что блок каталога webroot содержит одну из этих строк: AllowOverride FileInfo или AllowOverride All

Комментарии:

1. Привет, спасибо за ваш ответ, я попробовал, и это не сработало. Что случилось, теперь оно перенаправляется на to channels / xxx, когда я захожу в mydomain.com/xxx … но то, что я хочу видеть, происходит на mydomain.com/xxx отображается содержимое /channels /xxx.

2. Обновил ответ, попробуйте еще раз. Перенаправление является внутренним, поэтому должно отображаться содержимое /channels/xxx того, кто будет отображаться, пока адрес остается, mydomain.com/xxx не добавляйте R или R=301 с [L] , поскольку это приведет к изменению адреса в браузере.

3. Привет, еще раз спасибо. К сожалению, он все еще переходил к channels / xxx в URL, когда я перешел к mydomain.com/xxx . Для тестирования я очистил все, что было в htaccess в корне, и просто добавил ту часть, которую вы сказали добавить. Мод перезаписи установлен и работает, кстати;)

4. Это звучит неправильно, вы уверены, что только что [L] ? Вы можете попробовать в другом браузере? Возможно, вмешательство в кэш.

5. Я действительно пробовал это в других браузерах и получил [L], как в вашем примере. Так странно, потому что кажется, что это такая простая вещь, но, чувак, у меня от этого болит голова, хе-хе. Также трудно найти в Google, потому что большинство просто говорят о перенаправлении корневого URL-адреса в какую-то подпапку .. вздох 😉