Это мой текущий файл .htaccess
Options -MultiViews
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [NC]
RewriteRule ^(.*)/edit/(\d+)?$ $1/edit.php?tag=$2 [NC]
Как видите, он настроен на скрытие расширения .php, но это, похоже, нарушает правило редактирования. Если я закомментирую
RewriteRule ^(.*)$ $1.php [NC]
Правило редактирования работает нормально, но мне нужно и то, и другое, и я не могу заставить его работать, все видят, в чем проблема и как ее отсортировать.
[Редактировать] У меня есть такая ссылка, и когда все правила активны, это то, что не работает.
http://www.domainname.com/researcher/lists/edit/
и я получаю 500 Internal Server Error.
Пытался поставить RewriteRule ^ (. *) $ 1.php [NC] последним, казалось, что дела обстоят еще хуже, в итоге возникла внутренняя ошибка сервера
Позвольте мне просто упомянуть журнал перезаписи, снова. Как упоминалось во многих других подобных вопросах, универсальный .* наименее практичен для перекрывающихся правил. Конечно, нужен последний флаг.
Не могли бы вы уточнить, пожалуйста, и привести пример того, что вы имеете в виду. На самом деле не так уж много сделано с такими вещами
Обновили мой вопрос, чтобы включить дополнительную информацию
Цифра в конце указывать необязательно. Не работает с цифрой или без нее
Где находится ваш .htaccess?
он расположен на корневом уровне






Попробуйте правила, как в корневом каталоге вашего сайта .htaccess:
Options -MultiViews
RewriteEngine on
RewriteRule ^(.+)/edit(?:/(\d+))?/?$ $1/edit.php?tag=$2 [NC,L,QSA]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
Порядок правил важен. Журнал перезаписи помогает с наложением шаблонов.