Я использую следующий код в моем .htaccess:
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R=301,L]
# Special rewrite rules
# ideas/<id>
RewriteRule ^ideas/([0-9]+)$ idea\?id=$1
# users/<name>
RewriteRule ^users/(.+)$ users\?name=$1
Идеи / правила работают, как я и ожидал, но пользователи / правила, похоже, не работают. Это дает мне ошибку HTTP 500, и журнал Apache сообщает, что превышено количество доступных перенаправлений:
[Вс 14 июня 10:58:39 2009] [ошибка] [клиент 127.0.0.1] Запрос превысил 10 внутренних перенаправлений из-за вероятной ошибки конфигурации. Используйте LimitInternalRecursion, чтобы увеличить лимит, если это необходимо. Используйте 'LogLevel debug', чтобы получить обратную трассировку. Referer: http://localhost/users
URL-адрес, на котором я тестирую это / users / ross, который должен работать нормально. / ideas / 1 определенно работает нормально.