Ошибки сервера с .htaccess mod_rewrite - PullRequest
1 голос
/ 23 сентября 2011

На моем локальном хосте проблем нет, но когда я загружаю свой файл .htaccess в свою учетную запись хостинга 1and1, я сталкиваюсь с кирпичной стеной (внутренняя ошибка сервера 500)

Обновление: я обнаружил нарушающий код, просто не знаю, почему он неисправен или как его исправить (я закомментировал пунктирную строку)

 #RewriteRule ^([a-zA-Z_\-/]+)(\/?)$ index.php?p=$1 [R,NC,QSA,L]
  RewriteRule ^([a-zA-Z_/]+)(\/?)$ index.php?p=$1 [R,NC,QSA,L]

.htaccess содержимое файла:

AddType x-mapp-php5 .php   
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !\.(jpg|jpeg|gif|png|css|js|pl|txt)$
RewriteRule ^([a-zA-Z_\-/]+)(\/?)$ /index.php?p=$1 [L]

Комментирование последней строки (RewriteRule ...) останавливает ошибку, но мне, очевидно, нужно, чтобы это работало.

Файл отлично работает на моем локальном компьютере. Ну, это немного по-другому, поэтому я тоже включу этот код (различия: флаги, '/ NEP' и 1-я строка)

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !\.(jpg|jpeg|gif|png|css|js|pl|txt)$
RewriteRule ^([a-zA-Z_\-/]+)(\/?)$ /NEP2/index.php?p=$1 [NC,QSA,L]

Несколько примеров переписываний, которые я пытаюсь выполнить:

  • dev.mydomain.com / services / => dev.mydomain.com/index.php?p=services

  • dev.mydomain.com / quality / control => dev.mydomain.com/index.php?p=quality/control

Буду очень признателен за любую помощь / совет, который вы сможете дать. Мне действительно нужно сделать эту работу к концу дня.

1 Ответ

1 голос
/ 20 октября 2011

Дефис / тире в наборе символов функционирует как оператор диапазона (например, 0-9 или az).Наличие его в середине или в конце может быть проблематичным.

Перемещение его в начало набора символов позволяет избежать этой проблемы и означает, что вам не придется выходить из него с \:

[-a-zA-Z_/]
...