mod_rewrite: перенаправьте высокоуровневые каталоги в файл

Я хотел бы перенаправить все высокоуровневые каталоги в файл с помощью mod_rewrite.

Таким образом, следующее должно перенаправить там:

- http://example.com/test
- http://example.com/test8/ 
- http://example.com/test_9231/

Следующее не должно перенаправлять там:

- http://example.com/test.php
- http://example.com/test_9231/test/
- http://example.com/test/test.php
- http://example.com/test_9231/test

Ни один из каталогов не будет физически существовать. Имена каталогов будут только содержать эти символы: A-Za-z0-9_-

Я попробовал это RewriteRule /(.*) /index.php [L] но подкаталоги все еще перенаправляются.
Я думал, добавляя наклонную черту после того, как 2-я круглая скобка сделает задание, но это просто повредило перенаправление.

1
задан Bob the Knob 13 July 2010 в 19:28
поделиться

2 ответа

RewriteRule ^/[A-Za-z0-9_-]+/?$ /index.php

Будет соответствовать косая черта, затем имя в соответствии с вашей спецификацией, затем еще одна необязательная косая черта, затем конец строки, поэтому подкаталоги не будут совпадать

2
ответ дан 2 September 2019 в 23:05
поделиться
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?[^/]+/?$ /index.php [L]
0
ответ дан 2 September 2019 в 23:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: