Apache mod-rewrite для более коротких URL - PullRequest
0 голосов
/ 02 декабря 2009

Можно ли сделать что-то подобное с mod-rewrite?

Текущий URL:

www.example.com/Departments/dynamicPage.php?DeptID=10&DeptName=HR

чтобы настроить перезапись так:

www.example.com/hr

может перенаправить на вышеперечисленное (с аргументами)?

Я знаю, что мог бы создать папку "hr" на корневом уровне и вставить html-страницу с мета-обновлением, но я ненавижу лишний беспорядок.

Не думаю, что .htaccess 301 возможен, но, пожалуйста, поправьте меня, если я ошибаюсь. Я ищу элегантное решение, которое можно добавить для будущих экземпляров.

Ответы [ 2 ]

2 голосов
/ 02 декабря 2009

Кажется разумным. Что-то в этом роде должно сработать:

RewriteRule ^hr$ /Departments/dynamicPage.php?DeptID=10&DeptName=HR [L]

Если вы хотите сделать его общим:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /Departments/dynamicPage.php?DeptID=10&DeptName=$1 [L]

Конечно, тогда вам нужно быть осторожным с людьми, направляющимися в департаменты, которых на самом деле не существует, и вам нужно убедиться, что все ваши DeptNames имеют смысл.

Если вы хотите перенаправить 301, используйте [R=301] или [L,R=301] в конце правила перезаписи.

0 голосов
/ 02 декабря 2009
RewriteEngine On
RewriteRule ^hr$ Departments/dynamicPage.php?DeptID=10&DeptName=HR [R=301]
...