2014-01-15 6 views
2

Я использую локальный, и в моей странице index.php У меня есть этот код:Pass чистого параметра через URL

<? echo 'LANG IS '.$_GET['lang']; ?> 

Когда я печатаю на локальный URL это только показывает, Ланг, очевидно, но если я набираю localhost/en, я вижу сообщение 404 Not Found. Мне нужно набрать localhost? Lang = en, чтобы показать мой код index.php. Я хочу набрать localhost/en вместо localhost? Lang = en и получить тот же результат.

Я использую Apache2, и у меня включен mod_rewrite. У меня также есть файл .htaccess с кодом (я изменился и проверил его много раз):

RewriteEngine on 
RewriteRule ^/([a-zA-Z0-9]+|)/?$ index.php?lang=$1 [L,QSA] 

Я читал о .htaccess и чистых URLs в течение нескольких дней, но я не мог сделать эту работу , Есть идеи? Огромное спасибо заранее.

ответ

1

Скорее всего, ваш .htaccess даже не включен. Убедитесь, что первый

Чтобы проверить, если ваш .htaccess включен попробовать поставить такой же текст случайный/мусора на верхней части .htaccess и посмотреть, если он генерирует ошибку 500 (внутренний сервер) или нет?

Это не включено, тогда вам понадобится AllowOverride All строка в разделе <Directory "/var/www/> `.

После того, как включено следующее правило должно работать для вас:

RewriteEngine on 
RewriteRule ^(\w+)/?$ index.php?lang=$1 [L,QSA] 
+0

Вы правы, у меня включен mod_rewrite, но мой .htaccess не работает. Где мне нужно написать AllowOverride All? В apache2.conf? – forvas

+0

Да, это делается в apache2.conf в разделе '/var/www />'. Это также потребует перезапуска apache. – anubhava

+0

Теперь у меня есть это в этом разделе apache2.conf: ' Options Indexes FollowSymlinks AllowOverride всех Требуют все предоставлен ' – forvas

0

Постарайтесь избавиться от слэша в схеме:

RewriteEngine on 
RewriteRule ^([a-zA-Z0-9]+|)/?$ index.php?lang=$1 [L,QSA] 

адреса URI, которые передаются с помощью правил в HTAccess архивных ведущий слэш сняли поэтому шаблону нужен опустить.

+0

Спасибо так много, но я сделал это, после того, что я перезагрузил все, но это же 404 страница, когда я набираю снова локальный/эн. – forvas

+0

@ user3198727 - это файл htaccess в вашем корневом каталоге документа? –

+0

Да, я использую Kubuntu, и у меня есть .htaccess в/var/www /, где тоже index.php. – forvas

0

Проблема, вероятно, в регулярном выражении. Попробуйте с этим:

RewriteEngine on 
RewriteRule ^/([a-zA-Z0-9]+)/ /index.php?lang=$1 [L,QSA] 
+0

Спасибо, я вставил ваш код, но все та же проблема: Не найдено Запрашиваемый URL/en/не был найден на этом сервере. – forvas

Смежные вопросы