Удалите #
из четвертой строки и удалите пробел между восклицательным знаком (!) И -f
RewriteCond %{REQUEST_FILENAME} !-f
В этой строке написано, что если файл еще не существует на сервере, в данном случае index.php
, продолжите и выполните переписывание, которое следует.
Также убедитесь, что у вас есть DirectoryIndex
, а также проверка на наличие любых допустимых каталогов.
DirectoryIndex index.php
RewriteCond %{REQUEST_FILENAME} !-d
Что оставит вас с этой более чистой версией:
DirectoryIndex index.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)$ view.php?picid=$1 [L]
Сначала устанавливается index.php
в качестве файла по умолчанию. Затем вы запускаете механизм перезаписи и, если запрошенный файл еще не существует на сервере как файл или каталог, передаст данные в файл view.php
и выполнит его магию.