2012-05-30 4 views
0

меняется.htaccess довольно URL вопрос

mydomain.com/directory/?name=lorem&action=posts 

в

mydomain.com/directory/lorem/posts 

Но сейчас я пытаюсь добавить один под названием «другой»

, так что я хотел бы получить

mydomain.com/directory/?name=lorem&action=posts&other=38291389 

до

mydomain.com/directory/lorem/post/38291389 

Это код .htaccess Я использую для первого примера

RewriteEngine On 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 

RewriteRule ^(\w+)(/(\w+))?$ /directory/?name=$1&action=$3 

и вот тот, который я пытался сделать для второго примера, но он не работает

RewriteEngine On 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 

RewriteRule ^(\w+)(/(\w+))?$ /directory/?name=$1&action=$3&other=$4 

Может ли кто-нибудь помочь мне заставить это работать?

ответ

1

Держите это просто:

RewriteEngine On 
RewriteCond %{SCRIPT_FILENAME} -d [OR] 
RewriteCond %{SCRIPT_FILENAME} -f [OR] 
RewriteRule .* - [L] 

RewriteRule ^(\w+)/(\w+)/(\w+)/?$ /directory/?name=$1&action=$2&other=$3 
RewriteRule ^(\w+)/(\w+)/?$ /directory/?name=$1&action=$2 
RewriteRule ^(\w+)/?$ /directory/?name=$1 

Там нет реального усиления в сочетании нескольких эффектов в одном регулярном выражении (хотя это умное и заставляет вас чувствовать себя хорошо), но когда движок регулярных выражений делает свою работу, умной регулярное выражение может занимать больше времени, чем 2 или 3 простых правила (как указано выше).

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