что не так с этим правилом многоуровневой перезаписи каталогов htaccess? - PullRequest
0 голосов
/ 26 ноября 2011

У меня есть некоторые проблемы с моим htaccess ...

Я хочу, чтобы мой URL был таким:

http://example.com/artist/
http://example.com/artist/rihanna/
http://example.com/artist/rihanna/biography/
http://example.com/artist/rihanna/video/
http://example.com/artist/rihanna/news/

Проблема заключается во всей работе URL, кроме "http://example.com/artist/"

RewriteRule ^artist/([^_]*)/biography/$ /artist-biography.php?name=$1 [L]
RewriteRule ^artist/([^_]*)/biography?$ /artist/$1/biography/ [R=301,L]

RewriteRule ^artist/([^_]*)/video/$ /artist-video.php?name=$1 [L]
RewriteRule ^artist/([^_]*)/video?$ /artist/$1/video/ [R=301,L]

RewriteRule ^artist/([^_]*)/news/$ /artist-news.php?name=$1 [L]
RewriteRule ^artist/([^_]*)/news?$ /artist/$1/news/ [R=301,L]

RewriteRule ^artist/([^_]*)/$ /artist.php?name=$1 [L]
RewriteRule ^artist/([^_/]+)$ /artist/$1/ [R=301,L]

RewriteRule ^artist/$ /artist-page.php [L]
RewriteRule ^artist?$ /artist/ [R=301,L]

1 Ответ

2 голосов
/ 26 ноября 2011

Эта строка

RewriteRule ^ artist / ([^ _] *)? $ / Artist / $ 1 / [R = 301, L]

будет соответствовать http://example.com/artist/, что, вероятно, не то, что вы хотели. Измените его, как показано ниже

RewriteRule ^artist/([^_/]+)$ /artist/$1/ [R=301,L]

Если это не решит проблему полностью, дайте мне знать результат.

...