SEO дружественные URL (.htaccess) - PullRequest
1 голос
/ 22 декабря 2010
http://www.domain.com/folder/file?x=1&y=2

Изменить на:

http://www.domain.com/folder/file/1/2/

http://www.domain.com/folder/?x=1

Изменить на:

http://www.domain.com/folder/1/

Я пытался:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^folder/(.*)/$ folder/index.php?x=$1 [L]
RewriteRule ^folder/file/(.*)/(.*)/$ folder/file.php?x=$1&y=$2 [L]

но это не работает, у кого-нибудь есть идеи, почему?

когда я беру первое правило, я могу получить доступ ко второму с помощью:

http://www.domain.com/folder/1/2/

но не:

http://www.domain.com/folder/file/1/2/

Боже, я надеюсь, что я не путаю никого, кто читает это, я надеюсь, что это имеет смысл

Ответы [ 2 ]

1 голос
/ 22 декабря 2010

Попробуйте

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^folder/file/(.*)/(.*)/ /folder/file.php?x=$1&y=$2 [L]
RewriteRule ^folder/(.*)/ /folder/index.php?x=$1 [L]

Порядок правил важен. Вы всегда должны ставить первое с наибольшим количеством правил первым, так как ваш путь был к первому правилу, а затем останавливался, потому что это всегда было верно из-за (.*), который захватывал file.

0 голосов
/ 22 декабря 2010

Вы пытались добавить / перед именем папки?

RewriteRule ^folder/(.*)/$ /folder/index.php?x=$1 [L]
RewriteRule ^folder/file/(.*)/(.*)/$ /folder/file.php?x=$1&y=$2 [L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...