Как мне перенаправить с помощью mod_rewrite в документ и установить параметр GET? - PullRequest
2 голосов
/ 24 мая 2011

Так что я иду прямо в бизнес. Оба протестированы и подтверждены на XAMPP (Windows 7 32-разрядная версия) и MAMP (OS X Snow Leopard), обе последние версии. У меня следующая структура сайта:

/op/.htaccess
/op/index.php
/op/profile.php

Пути - это абсолютные пути от корня документа Apache.

Мой файл .htaccess выглядит так:

RewriteEngine on
RewriteRule ^[a-zA-Z0-9]+$ profile.php?alias=$1

Когда я запрашиваю сайт через http://localhost:8888/op/, открывается документ index.php . Это нормально. Когда я запрашиваю через http://localhost:8888/op/example документ profile.php , это тоже нормально. И там установлен параметр GET с именем псевдоним , как и нужно. Но это значение просто пусто! Как это:

http://localhost:8888/op/profile.php?alias=

Так что я просто хочу передать последнюю часть URL-адреса как переменную GET, чтобы она выглядела так для сервера:

http://localhost:8888/op/profile.php?alias=example

Я постепенно впадаю в отчаяние. Я борюсь с этим уже два с половиной часа. Либо это неправильная конфигурация сервера, либо настоящая глупая ошибка. Я думаю, это регулярное выражение, но я просто не понимаю.

1 Ответ

1 голос
/ 24 мая 2011

Это регулярное выражение, ваш htaccess должен выглядеть следующим образом:

RewriteEngine on
RewriteRule ^([a-zA-Z0-9]+)$ profile.php?alias=$1

$1 в конце строки соответствует первому подшаблону, но вы не указали ни одного подэлемента.шаблон.Первый набор скобок - это первый подшаблон.

Кроме того, вы можете указать RewriteBase

RewriteEngine on
RewriteBase /
RewriteRule ^([a-zA-Z0-9]+)$ profile.php?alias=$1
...