Я хотел бы перенаправить все высокоуровневые каталоги в файл с помощью 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-я круглая скобка сделает задание, но это просто повредило перенаправление.
RewriteRule ^/[A-Za-z0-9_-]+/?$ /index.php
Будет соответствовать косая черта, затем имя в соответствии с вашей спецификацией, затем еще одна необязательная косая черта, затем конец строки, поэтому подкаталоги не будут совпадать
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?[^/]+/?$ /index.php [L]