RewriteRule соответствует базовому пути / url


Я хотел бы, чтобы рерайтер соответствовал" базовому " url / пути моего сайта.

Мой базовый URL, когда-то в prod, будет чем-то вроде http://www.site.com, но в настоящее время http://localhost/dev/site/ в dev. .htaccess файл находится в папке "site".

В следующих примерах первый рерайтер-это проблема, и я не могу заставить его работать. 2-й и 3-й рерайтеры работают нормально. Мне нужно его довести до индекса.php?l = default&rte=index, если я достигну базового пути / URL.

Спасибо.

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^/$ index.php?l=default&rte=index [NC,L]
RewriteRule ^([a-zA-Z]{2})/$ index.php?l=$1&rte=index [NC,L]
RewriteRule ^([a-zA-Z]{2})/([a-zA-Z-]+)$ index.php?l=$1&rte=$2 [NC,L,QSA]
1 2

1 ответ:

Попробуйте следующие правила:

Options +FollowSymLinks -MultiViews
RewriteEngine On

RewriteRule ^/?$ index.php?l=default&rte=index [QSA,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteRule ^([a-zA-Z]{2})/?$ index.php?l=$1&rte=index [QSA,L]

RewriteRule ^([a-zA-Z]{2})/([a-zA-Z-]+)/?$ index.php?l=$1&rte=$2 [QSA,L,QSA]