Rewriteengine в .htaccess для ловли файлов, не заканчивающихся в HTML

вы должны попробовать что-то вроде этого,

 String sql = "select s_upload_file.NEXTVAL from dual" ;
 PreparedStatement ps = con.prepareStatement(sql);
 ResultSet rs = ps.executeQuery();
 if (rs.next())
 {
   int var2= rs.getInt(1);
 }
5
задан GEOCHET 27 May 2009 в 16:01
поделиться

3 ответа

Используйте a RewriteCond директива, чтобы проверить, не заканчивается ли путь URL a .html:

RewriteCond %{REQUEST_URI} !\.html$
RewriteRule ^(.*[^/])?/?$ $1/index.html [L]

Редактирование   Вы используете предварительное утверждение ((?!…)). Но после нет ничего .* (только a $). Так попробуйте оглянуться утверждение вместо этого:

RewriteRule ^.*$(?<!html) $0/index.html [L]

Но обратите внимание вероятную необходимость в Apache 2.2 для использования этих утверждений.

7
ответ дан 14 December 2019 в 01:18
поделиться

Ну, для того, чтобы на самом деле заставить его работать, Вы могли просто использовать отрицательный lookbehind вместо предвидения:

RewriteRule ^(.*)(?<!html)$ $1/index.html [L]

Я не уверен пренебрежительный, почему добавление 'x' заставляет его работать, я отредактирую, если я пойму это.

1
ответ дан 14 December 2019 в 01:18
поделиться

Поскольку, почему добавление x заставляет его работать: Если замена будет соответствовать regex, RewriteRule будет применен снова. Как пример, это вызывает ошибку:

RewriteRule ^(.*)$ $1.rb

потому что это заменило бы script с script.rb. Это соответствует regex, таким образом, он заменяет script.rb с script.rb.rb, снова и снова...

На это намекают в журнале ошибок:

Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary.

В Вашем примере Вы добавляете index.html в конец. Когда существует x в конце regex затем это не будет соответствовать Вашей замене, которая заканчивается в l.

1
ответ дан 14 December 2019 в 01:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: