Сокращение URL в Apache 2 - PullRequest
1 голос
/ 24 мая 2011

У меня есть сайт с домашней страницей как /var/www/mysite/index.html Теперь я хочу направить www.mysite.com/x2312d на /var/www/mysite/app/pass.php?id=x2312d Как мне это сделать? Где мне создать .htaccess файл и каким должен быть его контент?

Ответы [ 2 ]

3 голосов
/ 24 мая 2011

в корне /var/www

.htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^\.]+)$ /app/pass.php?id=$1 [NC,L]
1 голос
/ 24 мая 2011

поместите файл .htaccess в / var / www / mysite / app /.Я предполагаю, что ваш docroot / var / www / mysite /

убедитесь, что в apache 2 включен модуль перезаписи

.htaccess:

RewriteEngine On

#allows you to still access static items in this dir
RewriteCond %{REQUEST_URI} !\.(php|css|js|gif|png|jpe?g)$

#sent it all to pass script
RewriteRule (.*)$ pass.php [L]

Мне нравится этометод, предполагая, что pass - это своего рода контроллер.Мой контроллер для остальных API анализирует / x23123d вручную из глобальной переменной $ _SERVER, но вы можете использовать другой rewriterule, чтобы он был в глобальной переменной $ _GET / $ _ REQUEST ['id'].

что-то вроде этого:

RewriteRule ^app/(.+)$ app/pass.php?id=$1 [PT,L,QSA]

Хорошие ссылки: http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriterule

edit: почти забыл, не забывайте также обрабатывать конечные косые черты.

...