РЕДАКТИРОВАТЬ:
Установка Apache2 по умолчанию в системе Ubuntu, похоже, полностью заблокирована.Это также влияет на файлы .htaccess
, поскольку они не могут перезаписывать что-либо из конфигурации по умолчанию.
Однако редактирование файла /etc/apache2/sites-available/default
предоставило моим .htaccess
файлам достаточно привилегий для выполнения того, что я хотелделать:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
# Modify this from "None" to "All" (or any other suitable value)
--> AllowOverride None
Order allow,deny
allow from all
</Directory>
...
РЕДАКТИРОВАТЬ:
Вот как выглядит мой .htaccess на данный момент:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/(.+)$ $1-$2.php
ПРОИСХОЖДЕНИЕ:
Я нашел несколько инструкций по этому поводу, но я не могу понять это правильно (Да, я так трагически глуп).
Я хотел бы перевести это:
http://www.mydomain.com/flat/link?a=b&c=d
На это:
http://www.mydomain.com/flat-link.php?a=b&c=d
На данный момент я получаю только глупую 404
жалобу на The requested URL /flat/link was not found on this server.
Стоит упомянуть, что 404
на самом деле правильно;в корне www нет файловой структуры, подобной /flat/link
, поэтому я переведу вымышленный путь к реальному (поскольку существует файл flat-link.php
).Мне сказали, что это не обязательно самая красивая архитектура, но это правильный сценарий, так как я не хочу, чтобы моя файловая структура соответствовала моему REST-api.