Я удалил расширения файлов на .php для своего веб-сервера. Я просто хотел сделать это лучше. Это отлично работает.
У меня есть следующие страницы: sitename.com/portfolio sitename.com/portfolio/resume/file.html
В htaccess есть правила, так что, когда они посещают вторую ссылку, она просто конвертирует ее в портфолио.php? Resume & file = $ 1. Это работает потрясающе.
Хорошо, проблема. Поскольку я удаляю расширения, если пользователь должен был указать домен как sitename.com/ portfolio / с косой чертой, они получат внутреннюю ошибку сервера. Аналогично, если они просто набирают sitename.com/portfolio/r, они также получают ошибку, так как она не существует. Я знаю, что один из способов заключается в том, чтобы добавить параметр в htacess для каждой страницы, но это похоже на плохой способ сделать это.
Anyways здесь текущий htacess файл, который я использую:
Options +FollowSymlinks RewriteEngine On RewriteBase / RewriteRule ^portfolio/resumes/([^/]+).html$ /portfolio.php?resume&file=$1 [L,QSA] RewriteRule ^portfolio/resumes$ /portfolio.php?resumes [L,QSA] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.*)$ /$1.php [L] ErrorDocument 404 /404.php
Если я посещаю сайт на странице, которая не существует, например sitename.com/1 или sitename.com/1.php, я получаю свою страницу 404, но если 1.php DID существует, я бы увидел ее и ЕСЛИ она действительно существует, и я набрал sitename.com/1/ или sitename.com/1/somethingelse, а вместо 404 (что, как я ожидаю), это дает мне внутреннюю ошибку сервера. Есть ли способ обойти это? ошибка в моем синтаксисе? благодаря