Как я могу удалить .php и .html из своих URL-адресов?
Поэтому вместо domain.com/about.php это должно быть domain.com/about.
Я использовал тот же .htaccess код на моем веб-хостинге с OVH, но, купив VPS и сделав это сам, он не работает. Я просто получаю ошибку 404
Запрошенный URL-адрес / об этом не был найден на этом сервере.Я использую:
RewriteEngine On
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://domain.com/$1 [R=301,L]
DirectorySlash On
Способ, которым я это делаю:
RewriteCond %{REQUEST_URI} !(\.[^./]+)$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule (.*) $1.html [L]
RewriteCond %{REQUEST_URI} !(\.[^./]+)$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.htm -f
RewriteRule (.*) $1.htm [L]
RewriteCond %{REQUEST_URI} !(\.[^./]+)$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule (.*) $1.php [L]
Каждая из строф имеет следующую логику:
Если запрошенный файл не имеет расширения, то есть он не соответствует \.[^./]+)$, а запрошенный файл не является каталогом, а запрошенный файл не существует, и существует файл с запрошенным именем и расширением .html (или .htm или .php), затем Подайте этот файл.[L] означает последний или последний: больше не нужно переписывать, поэтому сервер может спокойно пропустить остальные правила перезаписи.
Способ, которым я это делаю:
RewriteCond %{REQUEST_URI} !(\.[^./]+)$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule (.*) $1.html [L]
RewriteCond %{REQUEST_URI} !(\.[^./]+)$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.htm -f
RewriteRule (.*) $1.htm [L]
RewriteCond %{REQUEST_URI} !(\.[^./]+)$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule (.*) $1.php [L]
Каждая из строф имеет следующую логику:
Если запрошенный файл не имеет расширения, то есть он не соответствует \.[^./]+)$, а запрошенный файл не является каталогом, а запрошенный файл не существует, и существует файл с запрошенным именем и расширением .html (или .htm или .php), затем Подайте этот файл.[L] означает последний или последний: больше не нужно переписывать, поэтому сервер может спокойно пропустить остальные правила перезаписи.