htaccess (без перенаправления) [REWRITEURL] (папка index.php)

StackOverflow https://stackoverflow.com/questions/807630

  •  03-07-2019
  •  | 
  •  

Вопрос

Я просто хочу получить быстрое перенаправление 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/ (я думаю)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top