Перезапись URL с помощью mod_rewrite - PullRequest
2 голосов
/ 10 июня 2010

Я сейчас переписываю URL с

http://domain.com/profile/?u=10000017564881

это к этому

http://domain.com/profile/10000017564881

со следующей перезаписью

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*?)\/?$ index.php?u=$1 [L]

Однако я хотел бы оптимизировать для SEO и перейти к:

http://domain.com/profile/10000017564881/Anything-I-want-here

Очевидно, что / Anything-I-want-here просто игнорируется ...

Есть идеи, ребята? высоко ценится

1 Ответ

6 голосов
/ 10 июня 2010

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

RewriteRule ^(.*?)\/? index.php?u=$1 [L]

# the following will work the same (as far as I can tell), and
# it's a lot more obvious at first glance what it does, which is
# match everything until the first slash
RewriteRule ^([^/]+)     ...

Когда я делаю что-то подобное, мне нравится проверять URL в коде и перенаправлять 301, если «Anything-I-want-here» не соответствует данным.

...