Вот мой .htaccess файл прямо сейчас.
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ $1.php [NC,L,QSA]
Это работает в том, что он делает мои страницы доступными, если вы не используете расширение .php.
Old = domain.com/test.php New = domain.com/test
Плохо то, что когда я отправляю данные по следующей ссылке, данные не передаются. Я думал, что вариант QSA сделал это, а что сделка?
domain.com/test?id=1
Соответствие всей строки запроса и добавление ее к новому URL-адресу с использованием обратной ссылки должно работать.
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^(.*)$ $1.php?%1 [NC,L,QSA]
Если вы передаете id
вы должны использовать этот код
Options +FollowSymLinks RewriteEngine on RewriteRule ^test/(.*)$ /test.php?id=$1
теперь вы можете получить доступ
domain.com/test?id=1
из
domain.com/test/1
Вот более простое решение. Мы используем его в нашем командном проекте. Он будет работать не только в корне, но и в любом каталоге вашего сайта.
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php