Переписать URL-адрес профиля пользователя (remove.html) - PullRequest
0 голосов
/ 11 февраля 2011

Любые идеи, как изменить, удалить .html в этом сценарии перезаписи мода Не работает, если я удалю ".html"

RewriteRule ^([^/]*)\.html$ /userprofile.php?member_id=$1 [L]

Работает как

http://site.com/12.html

, но хочетэто как

http://site.com/12

Спасибо

Ответы [ 3 ]

1 голос
/ 12 февраля 2011

Чтобы сделать .html необязательным, поместите его в группу и используйте квантификатор ?:

RewriteRule ^([^/]*)(\.html)?$ /userprofile.php?member_id=$1 [L]

Но так как этот шаблон теперь будет также соответствовать любому отдельному сегменту пути, вы должны сделать его более конкретным, чтобы соответствовать только вашему конкретному шаблону пути URL. В этом случае \d+ вместо [^/]* будет лучшим выбором:

RewriteRule ^(\d+)(\.html)?$ /userprofile.php?member_id=$1 [L]
0 голосов
/ 12 февраля 2011

Вам также необходимо удалить обратную косую черту ("\ .html").

0 голосов
/ 11 февраля 2011

ИЗМЕНЕНО: я протестировал следующее и они работают на сервере CentOS с Apache.

Для перезаписи каталогов:

RewriteRule ^/test/(.*)$ http://www.google.com [L,R]

Это перенаправит http://www.site.com/test на http://www.google.com.

Для всех файлов в каталоге это будет работать:

RewriteRule ^/test/([^/]*)(.*)$ http://www.google.com [L,R]

Это перенаправит www.site.com/test/12.html или www.site.com/test/298.aspx или любой другой файл в «тестовом» каталоге на www.google.com.

Так что это может быть больше, чем вы ищете:

RewriteRule ^/12/([^/]*)(.*)$ /userprofile.php?member_id=$1 [L,R]

ORIGINALPOST:

Я считаю, что это то, что вы ищете:

RewriteRule ^([^/]*)(.*)$ /userprofile.php?member_id=$1 [L]

То есть, если вы пытаетесь переписать файлы ...

Это будетбудет немного отличаться, если вы хотите переписать каталог.

...