#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-адреса в какую-то подпапку .. вздох 😉