htaccess (без перенаправления) [REWRITEURL] (папка index.php)
Вопрос
Я просто хочу получить быстрое перенаправление htaccess.то есть:
домен.com/подпапкаЗеленый --> домен.com/index.php?folder=подпапкаЗеленый
(обратите внимание, что подпапка Green действительно существует)
Я пытался, но не смог добраться до необходимого регулярного выражения.
Спасибо.а.
ДОБАВЛЕН:
Извините, я хочу, чтобы это работало на любую подпапку, а не только «subfoldergreen», я использую
RewriteRule ^/([^/]+)/?$ /index.php?folder=$1 [L]
но это не работает.какие-нибудь подсказки?
Решение
Я думаю, что ваш пример вызовет бесконечный цикл, поскольку /index.php соответствует тому, что вы делаете.Попробуй это:
RewriteRule ^([A-Za-z0-9]+)/?$ /index.php?folder=$1 [L]
Если вы хотите, чтобы это работало для всех существующих каталогов, это, вероятно, тоже сработает.
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+)/?$ /index.php?folder=$1 [L]
Другие советы
RewriteRule ([^/]+)$ index.php?folder=$1
Я думаю, это поможет.
RewriteRule имеет некоторые запутанные проблемы при использовании в .htaccess, требующем добавления RewriteBase.
Какие ошибки/проблемы вы видите?Если вы хотите быть уверены в том, как происходит перенаправление, добавление [R] часто может помочь при отладке.
Окончательно...подпапка Green действительно существует или нет?Если он существует, это может вызвать некоторые проблемы.
Я считаю, что это:
RedirectMatch 301 domain.com/(.*) domain.com/index.php?folder=$1
RewriteEngine on
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /(([^/\ ]+/)*)/+([^\ ]*)
RewriteRule ^ /%1%3 [L,R=301]
RewriteRule ^([^/]+)/?$ index.php?folder=$1 [L]
Строка № 2 будет обрабатывать случай, если кто-то перейдет на сайт site.com/mypage/////, поэтому вместо этого по умолчанию используется сайт site.com/mypage/ (я думаю)