2013-11-21 2 views
1

Я загрузил скрипт социальной сети phpDolphon. Это здорово, однако, у него нет чистых URL-адресов. Кто-нибудь знает, как это сделать?Очистить URL-адрес с помощью htaccess

Вот пример индексной страницы:

mydomain.com/index.php?a=feed

, и я хочу, чтобы изменить его на:

mydomain.com/


Вот пример страницы профиля :

mydomain.com/index.php?a=profile&u=daniel

, и я хочу, чтобы изменить его на:

mydomain.com/user/daniel


Я попробовал это, но это не похоже на работу. Есть идеи?

RewriteEngine On 
RewriteRule ^([A-Za-z0-9-+_%*?]+)/([A-Za-z0-9-+_%*?]+)/?$ index.php?a=$1&u=$2 [L] 

ответ

0

Как насчет:

RewriteEngine On 

RewriteCond %{THE_REQUEST} \ /+index\.php\?a=feed 
RewriteRule^/? [L,R=301] 

RewriteCond %{THE_REQUEST} \ /+index\.php\?a=profile&u=([^&\ ]+) 
RewriteRule^/user/%1? [L,R=301] 

RewriteRule ^user/([^/]+)$ /index.php?a=profile&u=$1 [L,QSA] 

RewriteRule ^$ /index.php?a=feed [L,QSA] 
+0

Что со всеми '$ {THE_REQUEST}' и '' \ '' и '[ L] и '[QSA]'? – Rudie

+0

@Rudie, если есть URL-адреса вне его контроля, которые все еще указывают на старые URL-адреса index.php? Something. «L» заканчивает переписывание текущей итерации, а 'QSA' добавляет строку запроса, если она существует. –

+0

Большое вам спасибо! –

0

Вам нужно очень конкретные правила:

# no 'feeds' in alias 
RewriteRule ^$ index.php?a=feed (maybe it needs a /) 

# 'user' in one, 'profile' in other 
RewriteRule ^user/(\w\d+)$ index.php?a=profile&u=$1 

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