Как я могу использовать mod_rewrite для перенаправления профиля пользователя без перенаправления всех других ресурсов сайта? - PullRequest
1 голос
/ 02 декабря 2011

Я новичок в mod_rewrite и проектирую его, поэтому я хотел бы знать, является ли это правильным подходом и не написаны ли правила хорошо.

Моя текущая цель - дать пользователям возможность иметь доступ к своим профилям через "www.mysite.com/profilename" и получать доступ к своим данным через "www.mysite.com/profilename / путь / к / данные ". Но мне, конечно, нужно иметь доступ к ресурсам сайта; изображения в img /, javascript в js / и т. д. Поэтому я написал первое правило, чтобы можно было получить доступ ко всем ресурсам, добавляя к каждому запросу "site /" . Это рекомендуемый метод? Есть ли другой способ, возможно, более "за", для достижения аналогичной функции? Я хочу простоты для себя и своих пользователей.

Это то, что я написал до сих пор.

# Circumvent redirecting to profile if prepended with 'site' #
RewriteRule ^site/(.+)$ $1 [QSA,L,NC]

# Redirect user to profile #
RewriteRule ([^/]+)/?$ profile/?user=$1 [NC,L]

# Redirect to user profile plus extra data #
RewriteRule ([^/]+)/(.+)/?$ profile/?user=$1&datapath=$2 [NC,L]

1 Ответ

0 голосов
/ 02 декабря 2011
#maps urls starting with '/site/ to '/'
RewriteRule ^site/(.+)$ $1 [L]

# don't rewrite (sub-)requests starting with /profile, or /site
RewriteCond %{THE_REQUEST} ^GET\ /site/
RewriteCond %{REQUEST_URI} ^/profile/
RewriteRule .* - [L]

# Redirect to user profile plus extra data #
RewriteRule ([^/]+)(/(.+))?$ profile/?user=$1&datapath=$3 [NC,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...