URL Rewrite =› Внутренняя ошибка сервера

Я получаю внутренние ошибки сервера каждый раз, когда я реализую этот код для перезаписи модов в моем файле .htaccess:

RewriteEngine On 
RewriteRule ^([^/]*)\.php$ /index.php?site=$1 [L]

Я пытаюсь преобразовать:

www.mydomain.com/index.php?site=mysite

to

www.mydomain.com/mysite.php

Ошибка:

Internal Server Error

Любая помощь будет принята с благодарностью, спасибо


person Relikt    schedule 18.02.2015    source источник


Ответы (1)


Ваше правило вызывает бесконечный цикл, потому что оно перезаписывает все запросы, оканчивающиеся на .php. Это также включает index.php, и поэтому он снова и снова переписывает его в index.php и так далее.

Просто добавьте в правило условие, которое его исключает.

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/index\.php [NC]
RewriteRule ^([^/]*)\.php$ /index.php?site=$1 [L]
person Ravi K Thapliyal    schedule 18.02.2015