Переадресация .htaccess rewriterule на страницу в подпапке, если реальная страница не существует - PullRequest
0 голосов
/ 21 января 2010

FTR, это определенно недостаток программиста. Проблема в том, что у меня есть короткий URL rewriterule, который отлично работает. Я могу сделать www.mysite.com/matt, и он попадет на мою страницу php, которая запрашивает результат. Но то, что мне нужно, это сделать mysite.com/music/matt

Когда я использую то же правило для подпапки, что и для корневого каталога, он выдает ошибку 500, И пытается перенаправить мой mysite.com/music/index.php, которые представляют большую проблему.

Вот что у меня отлично работает на root (т.е. перенаправляет mysite.com/matt как положено):

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /music/artist_page.php?n=$1 [L,QSA]

Если я попробую следующее, я получу внутреннюю ошибку 500, и она, похоже, съест все существующие файлы.

RewriteRule ^music/(.*)$ /music/artist_page.php?n=$1 [L,QSA]

1 Ответ

1 голос
/ 21 января 2010

Ваш пункт назначения замены music/artist_page.php также соответствует ^music/(.*)$, и, таким образом, вы получаете рекурсию. Первое условие в вашем первом правиле позволяет избежать этого для этого правила, поскольку оно исключает любой запрос, который может быть сопоставлен с существующим файлом.

...