Я действительно не понимаю, почему мой .htaccess файл работает неправильно с ^(.*)$
... Это мой .htaccess:
RewriteEngine On
RewriteRule ^(.*)$ index.php?alias=$1 [L]
Я просто хочу, чтобы поместить весь текст после моего адреса хоста в параметре GET с именем «псевдоним». Результатом этого является то, что в моем PHP скрипт «index.php», $_GET['alias']
будет иметь значение «index.php» вместо того, что после моего адреса хоста. Если я изменить .htaccess так:
RewriteEngine On
RewriteRule ^([A-Za-z\/]+)$ index.php?alias=$1 [L]
Я, наконец, $_GET['alias']
с правильным значением. Например, если я запрошу http://myaddress.com/the-value-of-alias, в первом случае я получу $_GET['alias'] = 'index.php'
. Во втором случае вместо этого я буду get $_GET['alias'] = 'the-value-of-alias'
. Тогда может кто-нибудь объяснить мне, в чем разница между ^([A-Za-z\/]+)$
и ^(.*)$
, пожалуйста? Спасибо вам большое заблаговременно. :)