Почему modRewrite применяет автоматический .php к этому простому правилу? - PullRequest
1 голос
/ 01 марта 2009

Хорошо, ребята, у меня может быть глупая проблема, но я, вероятно, тупой:)

У меня есть этот простой .htaccess:

Options +FollowSymlinks
RewriteEngine on
RewriteBase /

RewriteRule ^news/([^/]+)$               news-inside.php?n=$1 [L]
RewriteRule ^news/?$                  news.php [L]


RewriteCond %{REQUEST_FILENAME} !-f

Каждый раз, когда я пытаюсь войти в первое правило, набираю несколько URL-адресов, подобных этим:

http://host/news/something

меня перенаправляют в файл news.php, а не в news-inside.php со строкой запроса!

глядя на $ _GET и $ _SERVER достигнутой страницы, вот результат:

$_GET => empty

$_SERVER (some)

  'REQUEST_METHOD' => string 'GET' (length=3)
  'QUERY_STRING' => string '' (length=0)
  'REQUEST_URI' => string '/news/something' (length=15)
  'SCRIPT_NAME' => string '/news.php' (length=9)
  'PATH_INFO' => string '/something' (length=10)
  'PATH_TRANSLATED' => string '/var/www/rolo/something' (length=23)
  'PHP_SELF' => string '/news.php/something' (length=19)

Есть идеи ??

1 Ответ

5 голосов
/ 01 марта 2009

Попробуйте отключить MultiViews:

Options -MultiViews
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...