2013-04-09 3 views
0

Я работаю над системой ссылок, которая требует использования виртуальных каталогов. Мне удалось настроить систему, которая позволяет пользователям посещать domain.com/SjkpP/, что дает тот же эффект, что и domain.com/link.php?link=SjkpP, хотя конечная косая черта необходима и когда посещается domain.com/SjkpP возникает ошибка 404. Я довольно плохо разбираюсь в редактировании и добавлении файлов htaccess, поэтому мне было интересно, что я могу добавить, чтобы можно было посещать ссылку без привязки косой черты?Переадресация виртуального каталога

Текущий .htaccess

RewriteEngine on 
RewriteRule ([A-Za-z0-9]+)/ link.php?link=$1 
+2

Исправлено добавлением 'RewriteRule^([A-Za-z0-9] +) $/$ 1 /' – user2259473

ответ

0

Если вы хотите, чтобы сделать косую черту по желанию, вы можете использовать вместо этого:

RewriteRule ^([A-Za-z0-9]+)/?$ link.php?link=$1 

Это делает окончательный слэш опциональный (с регулярным выражением ? нуль- или-one), но не отображает косую черту, если она появляется (потому что черта появляется за пределами скобок, которые фиксируют имя виртуального каталога).

Просто имейте в виду, что, поскольку вы используете тихое перенаправление, веб-браузер посетителя будет думать, что он находится в каталоге, который не является общедоступным корневым каталогом. Таким образом, любые относительные пути (которые не начинаются с прямой косой черты), указывающие на оформление страницы (например, изображения, CSS или файлы JavaScript), заставят браузер попробовать не существующий подкаталог и ничего не придумать. Тем не менее, ваше текущее исправление заставляет браузер думать, что он находится в подкаталоге, поэтому, если у вас пока нет никаких проблем, то замена ваших правил на это не должна приводить к новым проблемам.

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