Этот параметр сделает чистые URL-адреса дружественных SEO. Removing.php с видимым URL-адресом и гарантируя, что доступ к URL-адресу без .php будет по-прежнему отображать .php-файл. Мне не удалось найти другой ответ, который был достигнут на нескольких потоках.
Не забудьте включить функцию перезаписи. В Debian или Unbuntu linux будет работать
sudo a2enmod rewrite
и
sudo service apache2 restart
Измените соответствующий раздел ваш файл apache2.conf к следующему.
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php [L]
RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC]
RewriteRule ^ /%1 [NC,L,R]
</Directory>
Если вы используете .htaccess для перезаписи, убедитесь, что apache2.conf по крайней мере имеет эти опции.
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
RewriteEngine On
</Directory>
Наконец, при установке Apache вам может потребоваться также установить AllowOveride All
в .conf-файл в / etc / apache2 / sites-available или / etc / apache2 / sites-enabled. Похоже, переписывание из файла apache2.conf, в отличие от .htaccess, выполняется быстрее.
Если вы запускаете это на unix-машине (я не уверен, что в windows есть что-то подобное, но возможно), вам стоит обратить внимание на chroot. Даже если вам кажется, что вы нашли все способы, с помощью которых кто-то может получить доступ к нескольким каталогам, приятно, когда операционная система подтверждает этот факт.
(chroot заставляет '/' ссылаться на какой-то другой каталог, так что "/" может быть "/home/me/project", а "/.../.../..." все еще "/home/me/project".)
EDIT:
Существует системный вызов chroot, а также инструмент командной строки chroot. Я не знаю, есть ли в Java нативный метод, но ничто не помешает вам запустить свой сервер с помощью инструмента командной строки. Это, конечно, должно быть в дополнение к тому, чтобы сделать все возможное для предотвращения других манипуляций с путями.
Вы можете проверить разрешенные символы в именах файлов ( http://en.wikipedia.org/wiki/Filename ) и отфильтровать все недопустимые символы (белый список), и тогда вы можете быть конечно, у вас там есть имя файла.