У меня есть следующие правила для работы которых:mod_rewrite - проблема с комбинацией правил
- действует только на файлы, которые существуют
- исключить любые файлы, которые содержат изображения | JS | CSS в их URI
- добавить косую черту просить Uri
правила Rewrite:
RewriteEngine on
DirectorySlash Off
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !/(images|js|css)$
RewriteRule ^(.*[^/.])$ /$1/ [R=301,L]
мне теперь нужно правильно перенаправить мой дом Ури так:
http://www.example.com/sitemap/
->http://www.example.com/index.php?page=sitemap
Я пробовал следующий подход:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/.])$ index.php?page=$1 [R=301,L,NC]
Но я получаю страница не найдена, предположительно потому что 1 доллар получает что-то с косой чертой. Я думал, что [^/]
удалит его, но, видимо, нет.
Может кто-нибудь объяснить, где я иду здесь неправильно?
Зачем вам нужно ** перенаправление ** (URL-адрес изменится в браузере)? Обычно люди хотят сохранить «хороший» URL-адрес и просто переписать URL-адрес (внутреннее перенаправление), когда URL-адрес остается неизменным в браузере. Это намеренно .. или по ошибке (я имею в виду ваше второе правило - 'R = 301')? – LazyOne
Это ошибка, я немного туманно о том, как бит redirect работает честно. Вы правы, я хотел бы сохранить хороший URL. –