RewriteRule дополнительные проблемы с косой чертой - PullRequest
2 голосов
/ 20 января 2011

Работа над приложением, которое я создаю параллельно с сайтом WordPress с включенными постоянными ссылками.Итак, позже в htaccess есть другие изменения, которые обрабатывают все аспекты WordPress.Но я пытаюсь выполнить некоторые из моих собственных переписываний, прежде чем они дойдут до них.- и конечно же, используя [L] после моего.Все работает идеально, пока я не попытаюсь добавить опцию до конца, разрешающую косую черту или без косой черты (и все равно делать совпадение).

Вот пример того, что выдает ошибку 500 на этом сервере:

RewriteRule ^app/([^/]+)/?$ /app/$1\.php [L,QSA]

http://<domain>.com/app/login
or
http://<domain>.com/app/login/

Но следующее работает просто отлично и выше предыдущего примера в htaccess.

RewriteRule ^app/p/([^/]+)/?$ /app/page.php?page_slug=$1 [L,QSA]

http://<domain>.com/app/p/styles
or
http://<domain>.com/app/p/styles/

Я пробовал варианты с небольшим успехом / без успеха.

RewriteRule ^app/([^/]+)/{0,1}$ /app/$1\.php [L,QSA]
and
RewriteRule ^app/([^/]+)[p]/[\p]?$ /app/$1\.php [L,QSA]

1 Ответ

2 голосов
/ 20 января 2011

Это потому, что ваше целевое местоположение /app/$1.php идеально подходит для вашего исходного местоположения ^app/([^/]+)/?$. Таким образом, страница перенаправляется на себя.

RewriteCond %{REQUEST_URI} !\.php
RewriteRule ^app/([^/]+)/?$ /app/$1.php [L,QSA]
...