Mod_Rewrite и структура ссылок на сайт - PullRequest
0 голосов
/ 31 октября 2011

У меня есть сайт с этой структурой

index.php / home.php / profile.php / news.php / photos.php

newsfeed.php - для новостной статьи

photo.php - для фото

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

mysite.com/UserName

теперь я использую этот код в .htaccess для перезаписи URL-адресов имени пользователя

RewriteEngine on
RewriteOptions MaxRedirects=1
RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [NC]
RewriteRule .* - [L]
RewriteRule ^([^/]+)/?$ profile.php?u=$1 [L]

теперь я хочу переписать все мои ссылки, чтобы они были такими же, как SE

index.php   --> index
home.php    --> home
photos.php  --> photos
videos.php  --> videos

newsfeed.php?id=xx  --> news/xx
photo.php?id=xx     --> photo/xx

Так есть идеи?

1 Ответ

1 голос
/ 31 октября 2011

Вот что я бы сделал:

RewriteEngine on
RewriteOptions MaxRedirects=1
RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [NC]
RewriteRule .* - [L]
RewriteRule ^users/([^/]+)/?$ profile.php?u=$1 [L]
RewriteRule ^news/([0-9]+)/?$ newsfeed.php?id=$1 [L]
RewriteRule ^photo/([0-9]+)/?$ photo.php?id=$1 [L]
RewriteRule ^videos/?$ videos.php [L]
RewriteRule ^index/?$ index.php [L]
RewriteRule ^home/?$ home.php [L]

И просто добавьте их вот так.

...